From ca3866eae39f7159feb7774cca88e1488aad1e94 Mon Sep 17 00:00:00 2001 From: Lee Hanken Date: Fri, 23 Dec 2022 12:03:25 +0000 Subject: [PATCH] added unit tests --- Dockerfile | 7 + node_modules/.bin/browserslist | 1 + node_modules/.bin/browserslist-lint | 1 + node_modules/.bin/import-local-fixture | 1 + node_modules/.bin/jest | 1 + node_modules/.bin/js-yaml | 1 + node_modules/.bin/jsesc | 1 + node_modules/.bin/json5 | 1 + node_modules/.bin/node-which | 1 + node_modules/.bin/parser | 1 + node_modules/.bin/resolve | 1 + node_modules/.bin/semver | 1 + node_modules/.package-lock.json | 3399 +++- node_modules/@7c/validurl/README.md | 0 node_modules/@7c/validurl/package.json | 0 node_modules/@7c/validurl/tests/validURL.js | 0 node_modules/@7c/validurl/validURL.js | 0 node_modules/@ampproject/remapping/LICENSE | 202 + node_modules/@ampproject/remapping/README.md | 218 + .../@ampproject/remapping/dist/remapping.mjs | 204 + .../remapping/dist/remapping.mjs.map | 1 + .../remapping/dist/remapping.umd.js | 209 + .../remapping/dist/remapping.umd.js.map | 1 + .../dist/types/build-source-map-tree.d.ts | 14 + .../remapping/dist/types/remapping.d.ts | 19 + .../remapping/dist/types/source-map-tree.d.ts | 48 + .../remapping/dist/types/source-map.d.ts | 17 + .../remapping/dist/types/types.d.ts | 14 + .../@ampproject/remapping/package.json | 63 + node_modules/@babel/code-frame/LICENSE | 22 + node_modules/@babel/code-frame/README.md | 19 + node_modules/@babel/code-frame/lib/index.js | 163 + node_modules/@babel/code-frame/package.json | 30 + node_modules/@babel/compat-data/LICENSE | 22 + node_modules/@babel/compat-data/README.md | 19 + .../@babel/compat-data/corejs2-built-ins.js | 1 + .../compat-data/corejs3-shipped-proposals.js | 1 + .../compat-data/data/corejs2-built-ins.json | 1935 ++ .../data/corejs3-shipped-proposals.json | 5 + .../compat-data/data/native-modules.json | 18 + .../compat-data/data/overlapping-plugins.json | 25 + .../compat-data/data/plugin-bugfixes.json | 184 + .../@babel/compat-data/data/plugins.json | 691 + .../@babel/compat-data/native-modules.js | 1 + .../@babel/compat-data/overlapping-plugins.js | 1 + node_modules/@babel/compat-data/package.json | 40 + .../@babel/compat-data/plugin-bugfixes.js | 1 + node_modules/@babel/compat-data/plugins.js | 1 + node_modules/@babel/core/LICENSE | 22 + node_modules/@babel/core/README.md | 19 + node_modules/@babel/core/cjs-proxy.cjs | 29 + .../@babel/core/lib/config/cache-contexts.js | 3 + .../core/lib/config/cache-contexts.js.map | 1 + .../@babel/core/lib/config/caching.js | 264 + .../@babel/core/lib/config/caching.js.map | 1 + .../@babel/core/lib/config/config-chain.js | 482 + .../core/lib/config/config-chain.js.map | 1 + .../core/lib/config/config-descriptors.js | 198 + .../core/lib/config/config-descriptors.js.map | 1 + .../core/lib/config/files/configuration.js | 286 + .../lib/config/files/configuration.js.map | 1 + .../lib/config/files/import-meta-resolve.js | 35 + .../config/files/import-meta-resolve.js.map | 1 + .../@babel/core/lib/config/files/import.cjs | 8 + .../core/lib/config/files/import.cjs.map | 1 + .../core/lib/config/files/index-browser.js | 76 + .../lib/config/files/index-browser.js.map | 1 + .../@babel/core/lib/config/files/index.js | 78 + .../@babel/core/lib/config/files/index.js.map | 1 + .../core/lib/config/files/module-types.js | 97 + .../core/lib/config/files/module-types.js.map | 1 + .../@babel/core/lib/config/files/package.js | 62 + .../core/lib/config/files/package.js.map | 1 + .../@babel/core/lib/config/files/plugins.js | 232 + .../core/lib/config/files/plugins.js.map | 1 + .../@babel/core/lib/config/files/types.js | 3 + .../@babel/core/lib/config/files/types.js.map | 1 + .../@babel/core/lib/config/files/utils.js | 36 + .../@babel/core/lib/config/files/utils.js.map | 1 + node_modules/@babel/core/lib/config/full.js | 317 + .../@babel/core/lib/config/full.js.map | 1 + .../core/lib/config/helpers/config-api.js | 85 + .../core/lib/config/helpers/config-api.js.map | 1 + .../core/lib/config/helpers/deep-array.js | 24 + .../core/lib/config/helpers/deep-array.js.map | 1 + .../core/lib/config/helpers/environment.js | 12 + .../lib/config/helpers/environment.js.map | 1 + node_modules/@babel/core/lib/config/index.js | 70 + .../@babel/core/lib/config/index.js.map | 1 + node_modules/@babel/core/lib/config/item.js | 70 + .../@babel/core/lib/config/item.js.map | 1 + .../@babel/core/lib/config/partial.js | 169 + .../@babel/core/lib/config/partial.js.map | 1 + .../core/lib/config/pattern-to-regex.js | 43 + .../core/lib/config/pattern-to-regex.js.map | 1 + node_modules/@babel/core/lib/config/plugin.js | 33 + .../@babel/core/lib/config/plugin.js.map | 1 + .../@babel/core/lib/config/printer.js | 114 + .../@babel/core/lib/config/printer.js.map | 1 + .../lib/config/resolve-targets-browser.js | 44 + .../lib/config/resolve-targets-browser.js.map | 1 + .../@babel/core/lib/config/resolve-targets.js | 61 + .../core/lib/config/resolve-targets.js.map | 1 + node_modules/@babel/core/lib/config/util.js | 31 + .../@babel/core/lib/config/util.js.map | 1 + .../config/validation/option-assertions.js | 282 + .../validation/option-assertions.js.map | 1 + .../core/lib/config/validation/options.js | 193 + .../core/lib/config/validation/options.js.map | 1 + .../core/lib/config/validation/plugins.js | 64 + .../core/lib/config/validation/plugins.js.map | 1 + .../core/lib/config/validation/removed.js | 69 + .../core/lib/config/validation/removed.js.map | 1 + .../@babel/core/lib/errors/config-error.js | 18 + .../core/lib/errors/config-error.js.map | 1 + .../core/lib/errors/rewrite-stack-trace.js | 99 + .../lib/errors/rewrite-stack-trace.js.map | 1 + .../@babel/core/lib/gensync-utils/async.js | 98 + .../core/lib/gensync-utils/async.js.map | 1 + .../@babel/core/lib/gensync-utils/fs.js | 33 + .../@babel/core/lib/gensync-utils/fs.js.map | 1 + .../core/lib/gensync-utils/functional.js | 33 + .../core/lib/gensync-utils/functional.js.map | 1 + node_modules/@babel/core/lib/index.js | 243 + node_modules/@babel/core/lib/index.js.map | 1 + node_modules/@babel/core/lib/parse.js | 48 + node_modules/@babel/core/lib/parse.js.map | 1 + node_modules/@babel/core/lib/parser/index.js | 80 + .../@babel/core/lib/parser/index.js.map | 1 + .../lib/parser/util/missing-plugin-helper.js | 322 + .../parser/util/missing-plugin-helper.js.map | 1 + .../core/lib/tools/build-external-helpers.js | 144 + .../lib/tools/build-external-helpers.js.map | 1 + node_modules/@babel/core/lib/transform-ast.js | 51 + .../@babel/core/lib/transform-ast.js.map | 1 + .../@babel/core/lib/transform-file-browser.js | 25 + .../core/lib/transform-file-browser.js.map | 1 + .../@babel/core/lib/transform-file.js | 41 + .../@babel/core/lib/transform-file.js.map | 1 + node_modules/@babel/core/lib/transform.js | 50 + node_modules/@babel/core/lib/transform.js.map | 1 + .../lib/transformation/block-hoist-plugin.js | 83 + .../transformation/block-hoist-plugin.js.map | 1 + .../core/lib/transformation/file/file.js | 215 + .../core/lib/transformation/file/file.js.map | 1 + .../core/lib/transformation/file/generate.js | 80 + .../lib/transformation/file/generate.js.map | 1 + .../core/lib/transformation/file/merge-map.js | 39 + .../lib/transformation/file/merge-map.js.map | 1 + .../@babel/core/lib/transformation/index.js | 102 + .../core/lib/transformation/index.js.map | 1 + .../core/lib/transformation/normalize-file.js | 134 + .../lib/transformation/normalize-file.js.map | 1 + .../core/lib/transformation/normalize-opts.js | 59 + .../lib/transformation/normalize-opts.js.map | 1 + .../core/lib/transformation/plugin-pass.js | 49 + .../lib/transformation/plugin-pass.js.map | 1 + .../lib/transformation/util/clone-deep.js | 35 + .../lib/transformation/util/clone-deep.js.map | 1 + .../core/lib/vendor/import-meta-resolve.js | 3001 ++++ .../lib/vendor/import-meta-resolve.js.map | 1 + .../node_modules/convert-source-map/LICENSE | 23 + .../node_modules/convert-source-map/README.md | 123 + .../node_modules/convert-source-map/index.js | 179 + .../convert-source-map/package.json | 41 + .../@babel/core/node_modules/debug/LICENSE | 20 + .../@babel/core/node_modules/debug/README.md | 481 + .../core/node_modules/debug/package.json | 59 + .../core/node_modules/debug/src/browser.js | 269 + .../core/node_modules/debug/src/common.js | 274 + .../core/node_modules/debug/src/index.js | 10 + .../core/node_modules/debug/src/node.js | 263 + .../@babel/core/node_modules/ms/index.js | 162 + .../@babel/core/node_modules/ms/license.md | 21 + .../@babel/core/node_modules/ms/package.json | 37 + .../@babel/core/node_modules/ms/readme.md | 60 + node_modules/@babel/core/package.json | 80 + .../core/src/config/files/index-browser.ts | 109 + .../@babel/core/src/config/files/index.ts | 30 + .../src/config/resolve-targets-browser.ts | 40 + .../@babel/core/src/config/resolve-targets.ts | 56 + .../@babel/core/src/transform-file-browser.ts | 31 + .../@babel/core/src/transform-file.ts | 55 + node_modules/@babel/generator/LICENSE | 22 + node_modules/@babel/generator/README.md | 19 + node_modules/@babel/generator/lib/buffer.js | 294 + .../@babel/generator/lib/buffer.js.map | 1 + .../@babel/generator/lib/generators/base.js | 95 + .../generator/lib/generators/base.js.map | 1 + .../generator/lib/generators/classes.js | 186 + .../generator/lib/generators/classes.js.map | 1 + .../generator/lib/generators/expressions.js | 299 + .../lib/generators/expressions.js.map | 1 + .../@babel/generator/lib/generators/flow.js | 663 + .../generator/lib/generators/flow.js.map | 1 + .../@babel/generator/lib/generators/index.js | 128 + .../generator/lib/generators/index.js.map | 1 + .../@babel/generator/lib/generators/jsx.js | 123 + .../generator/lib/generators/jsx.js.map | 1 + .../generator/lib/generators/methods.js | 137 + .../generator/lib/generators/methods.js.map | 1 + .../generator/lib/generators/modules.js | 244 + .../generator/lib/generators/modules.js.map | 1 + .../generator/lib/generators/statements.js | 280 + .../lib/generators/statements.js.map | 1 + .../lib/generators/template-literals.js | 30 + .../lib/generators/template-literals.js.map | 1 + .../@babel/generator/lib/generators/types.js | 224 + .../generator/lib/generators/types.js.map | 1 + .../generator/lib/generators/typescript.js | 697 + .../lib/generators/typescript.js.map | 1 + node_modules/@babel/generator/lib/index.js | 98 + .../@babel/generator/lib/index.js.map | 1 + .../@babel/generator/lib/node/index.js | 79 + .../@babel/generator/lib/node/index.js.map | 1 + .../@babel/generator/lib/node/parentheses.js | 316 + .../generator/lib/node/parentheses.js.map | 1 + .../@babel/generator/lib/node/whitespace.js | 160 + .../generator/lib/node/whitespace.js.map | 1 + node_modules/@babel/generator/lib/printer.js | 665 + .../@babel/generator/lib/printer.js.map | 1 + .../@babel/generator/lib/source-map.js | 58 + .../@babel/generator/lib/source-map.js.map | 1 + .../@jridgewell/gen-mapping/LICENSE | 19 + .../@jridgewell/gen-mapping/README.md | 227 + .../gen-mapping/dist/gen-mapping.mjs | 230 + .../gen-mapping/dist/gen-mapping.mjs.map | 1 + .../gen-mapping/dist/gen-mapping.umd.js | 236 + .../gen-mapping/dist/gen-mapping.umd.js.map | 1 + .../gen-mapping/dist/types/gen-mapping.d.ts | 90 + .../dist/types/sourcemap-segment.d.ts | 12 + .../gen-mapping/dist/types/types.d.ts | 35 + .../@jridgewell/gen-mapping/package.json | 78 + .../gen-mapping/src/gen-mapping.ts | 458 + .../gen-mapping/src/sourcemap-segment.ts | 16 + .../@jridgewell/gen-mapping/src/types.ts | 43 + node_modules/@babel/generator/package.json | 37 + .../@babel/helper-compilation-targets/LICENSE | 22 + .../helper-compilation-targets/README.md | 19 + .../helper-compilation-targets/lib/debug.js | 28 + .../lib/debug.js.map | 1 + .../lib/filter-items.js | 74 + .../lib/filter-items.js.map | 1 + .../helper-compilation-targets/lib/index.js | 226 + .../lib/index.js.map | 1 + .../helper-compilation-targets/lib/options.js | 24 + .../lib/options.js.map | 1 + .../helper-compilation-targets/lib/pretty.js | 41 + .../lib/pretty.js.map | 1 + .../helper-compilation-targets/lib/targets.js | 30 + .../lib/targets.js.map | 1 + .../helper-compilation-targets/lib/utils.js | 61 + .../lib/utils.js.map | 1 + .../helper-compilation-targets/package.json | 44 + .../@babel/helper-environment-visitor/LICENSE | 22 + .../helper-environment-visitor/README.md | 19 + .../helper-environment-visitor/lib/index.js | 59 + .../helper-environment-visitor/package.json | 29 + .../@babel/helper-function-name/LICENSE | 22 + .../@babel/helper-function-name/README.md | 19 + .../@babel/helper-function-name/lib/index.js | 201 + .../helper-function-name/lib/index.js.map | 1 + .../@babel/helper-function-name/package.json | 25 + .../@babel/helper-hoist-variables/LICENSE | 22 + .../@babel/helper-hoist-variables/README.md | 19 + .../helper-hoist-variables/lib/index.js | 58 + .../helper-hoist-variables/package.json | 28 + .../@babel/helper-module-imports/LICENSE | 22 + .../@babel/helper-module-imports/README.md | 19 + .../lib/import-builder.js | 164 + .../lib/import-injector.js | 280 + .../@babel/helper-module-imports/lib/index.js | 41 + .../helper-module-imports/lib/is-module.js | 18 + .../@babel/helper-module-imports/package.json | 28 + .../@babel/helper-module-transforms/LICENSE | 22 + .../@babel/helper-module-transforms/README.md | 19 + .../lib/dynamic-import.js | 15 + .../lib/dynamic-import.js.map | 1 + .../lib/get-module-name.js | 53 + .../lib/get-module-name.js.map | 1 + .../helper-module-transforms/lib/index.js | 386 + .../helper-module-transforms/lib/index.js.map | 1 + .../lib/normalize-and-load-metadata.js | 354 + .../lib/normalize-and-load-metadata.js.map | 1 + .../lib/rewrite-live-references.js | 365 + .../lib/rewrite-live-references.js.map | 1 + .../lib/rewrite-this.js | 25 + .../lib/rewrite-this.js.map | 1 + .../helper-module-transforms/package.json | 31 + .../@babel/helper-plugin-utils/LICENSE | 22 + .../@babel/helper-plugin-utils/README.md | 19 + .../@babel/helper-plugin-utils/lib/index.js | 79 + .../helper-plugin-utils/lib/index.js.map | 1 + .../@babel/helper-plugin-utils/package.json | 21 + .../@babel/helper-simple-access/LICENSE | 22 + .../@babel/helper-simple-access/README.md | 19 + .../@babel/helper-simple-access/lib/index.js | 97 + .../helper-simple-access/lib/index.js.map | 1 + .../@babel/helper-simple-access/package.json | 28 + .../helper-split-export-declaration/LICENSE | 22 + .../helper-split-export-declaration/README.md | 19 + .../lib/index.js | 63 + .../package.json | 24 + .../@babel/helper-string-parser/LICENSE | 22 + .../@babel/helper-string-parser/README.md | 19 + .../@babel/helper-string-parser/lib/index.js | 347 + .../helper-string-parser/lib/index.js.map | 1 + .../@babel/helper-string-parser/package.json | 28 + .../helper-validator-identifier/LICENSE | 22 + .../helper-validator-identifier/README.md | 19 + .../lib/identifier.js | 86 + .../lib/identifier.js.map | 1 + .../helper-validator-identifier/lib/index.js | 59 + .../lib/index.js.map | 1 + .../lib/keyword.js | 40 + .../lib/keyword.js.map | 1 + .../helper-validator-identifier/package.json | 28 + .../scripts/generate-identifier-regex.js | 75 + .../@babel/helper-validator-option/LICENSE | 22 + .../@babel/helper-validator-option/README.md | 19 + .../lib/find-suggestion.js | 45 + .../helper-validator-option/lib/index.js | 21 + .../helper-validator-option/lib/validator.js | 58 + .../helper-validator-option/package.json | 24 + node_modules/@babel/helpers/LICENSE | 22 + node_modules/@babel/helpers/README.md | 19 + .../@babel/helpers/lib/helpers-generated.js | 37 + .../helpers/lib/helpers-generated.js.map | 1 + node_modules/@babel/helpers/lib/helpers.js | 1792 ++ .../@babel/helpers/lib/helpers.js.map | 1 + .../helpers/lib/helpers/AsyncGenerator.js | 94 + .../helpers/lib/helpers/AsyncGenerator.js.map | 1 + .../helpers/lib/helpers/OverloadYield.js | 13 + .../helpers/lib/helpers/OverloadYield.js.map | 1 + .../@babel/helpers/lib/helpers/applyDecs.js | 451 + .../helpers/lib/helpers/applyDecs.js.map | 1 + .../helpers/lib/helpers/applyDecs2203.js | 359 + .../helpers/lib/helpers/applyDecs2203.js.map | 1 + .../lib/helpers/asyncGeneratorDelegate.js | 53 + .../lib/helpers/asyncGeneratorDelegate.js.map | 1 + .../helpers/lib/helpers/asyncIterator.js | 71 + .../helpers/lib/helpers/asyncIterator.js.map | 1 + .../lib/helpers/awaitAsyncGenerator.js | 13 + .../lib/helpers/awaitAsyncGenerator.js.map | 1 + .../@babel/helpers/lib/helpers/checkInRHS.js | 15 + .../helpers/lib/helpers/checkInRHS.js.map | 1 + .../helpers/lib/helpers/defineAccessor.js | 17 + .../helpers/lib/helpers/defineAccessor.js.map | 1 + .../lib/helpers/iterableToArrayLimit.js | 43 + .../lib/helpers/iterableToArrayLimit.js.map | 1 + .../lib/helpers/iterableToArrayLimitLoose.js | 19 + .../helpers/iterableToArrayLimitLoose.js.map | 1 + .../@babel/helpers/lib/helpers/jsx.js | 49 + .../@babel/helpers/lib/helpers/jsx.js.map | 1 + .../helpers/lib/helpers/objectSpread2.js | 40 + .../helpers/lib/helpers/objectSpread2.js.map | 1 + .../helpers/lib/helpers/regeneratorRuntime.js | 528 + .../lib/helpers/regeneratorRuntime.js.map | 1 + .../@babel/helpers/lib/helpers/typeof.js | 23 + .../@babel/helpers/lib/helpers/typeof.js.map | 1 + .../@babel/helpers/lib/helpers/wrapRegExp.js | 68 + .../helpers/lib/helpers/wrapRegExp.js.map | 1 + node_modules/@babel/helpers/lib/index.js | 247 + node_modules/@babel/helpers/lib/index.js.map | 1 + node_modules/@babel/helpers/package.json | 33 + .../helpers/scripts/generate-helpers.js | 64 + .../scripts/generate-regenerator-runtime.js | 64 + .../@babel/helpers/scripts/package.json | 1 + node_modules/@babel/highlight/LICENSE | 22 + node_modules/@babel/highlight/README.md | 19 + node_modules/@babel/highlight/lib/index.js | 116 + .../node_modules/ansi-styles/index.js | 165 + .../node_modules/ansi-styles/license | 9 + .../node_modules/ansi-styles/package.json | 56 + .../node_modules/ansi-styles/readme.md | 147 + .../highlight/node_modules/chalk/index.js | 228 + .../node_modules/chalk/index.js.flow | 93 + .../highlight/node_modules/chalk/license | 9 + .../highlight/node_modules/chalk/package.json | 71 + .../highlight/node_modules/chalk/readme.md | 314 + .../highlight/node_modules/chalk/templates.js | 128 + .../node_modules/chalk/types/index.d.ts | 97 + .../node_modules/color-convert/CHANGELOG.md | 54 + .../node_modules/color-convert/LICENSE | 21 + .../node_modules/color-convert/README.md | 68 + .../node_modules/color-convert/conversions.js | 868 + .../node_modules/color-convert/index.js | 78 + .../node_modules/color-convert/package.json | 46 + .../node_modules/color-convert/route.js | 97 + .../node_modules/color-name/.eslintrc.json | 43 + .../node_modules/color-name/.npmignore | 107 + .../highlight/node_modules/color-name/LICENSE | 8 + .../node_modules/color-name/README.md | 11 + .../node_modules/color-name/index.js | 152 + .../node_modules/color-name/package.json | 25 + .../highlight/node_modules/color-name/test.js | 7 + .../escape-string-regexp/index.js | 11 + .../node_modules/escape-string-regexp/license | 21 + .../escape-string-regexp/package.json | 41 + .../escape-string-regexp/readme.md | 27 + .../highlight/node_modules/has-flag/index.js | 8 + .../highlight/node_modules/has-flag/license | 9 + .../node_modules/has-flag/package.json | 44 + .../highlight/node_modules/has-flag/readme.md | 70 + .../node_modules/supports-color/browser.js | 5 + .../node_modules/supports-color/index.js | 131 + .../node_modules/supports-color/license | 9 + .../node_modules/supports-color/package.json | 53 + .../node_modules/supports-color/readme.md | 66 + node_modules/@babel/highlight/package.json | 30 + node_modules/@babel/parser/CHANGELOG.md | 1073 ++ node_modules/@babel/parser/LICENSE | 19 + node_modules/@babel/parser/README.md | 19 + .../@babel/parser/bin/babel-parser.js | 15 + node_modules/@babel/parser/index.cjs | 5 + node_modules/@babel/parser/lib/index.js | 14838 ++++++++++++++++ node_modules/@babel/parser/lib/index.js.map | 1 + node_modules/@babel/parser/package.json | 46 + .../@babel/parser/typings/babel-parser.d.ts | 227 + .../plugin-syntax-async-generators/LICENSE | 22 + .../plugin-syntax-async-generators/README.md | 19 + .../lib/index.js | 22 + .../package.json | 23 + .../@babel/plugin-syntax-bigint/LICENSE | 22 + .../@babel/plugin-syntax-bigint/README.md | 19 + .../@babel/plugin-syntax-bigint/lib/index.js | 22 + .../@babel/plugin-syntax-bigint/package.json | 23 + .../plugin-syntax-class-properties/LICENSE | 22 + .../plugin-syntax-class-properties/README.md | 19 + .../lib/index.js | 22 + .../package.json | 28 + .../@babel/plugin-syntax-import-meta/LICENSE | 22 + .../plugin-syntax-import-meta/README.md | 19 + .../plugin-syntax-import-meta/lib/index.js | 22 + .../plugin-syntax-import-meta/package.json | 28 + .../@babel/plugin-syntax-json-strings/LICENSE | 22 + .../plugin-syntax-json-strings/README.md | 19 + .../plugin-syntax-json-strings/lib/index.js | 22 + .../plugin-syntax-json-strings/package.json | 23 + node_modules/@babel/plugin-syntax-jsx/LICENSE | 22 + .../@babel/plugin-syntax-jsx/README.md | 19 + .../@babel/plugin-syntax-jsx/lib/index.js | 30 + .../@babel/plugin-syntax-jsx/package.json | 33 + .../LICENSE | 22 + .../README.md | 19 + .../lib/index.js | 22 + .../package.json | 28 + .../LICENSE | 22 + .../README.md | 19 + .../lib/index.js | 22 + .../package.json | 23 + .../plugin-syntax-numeric-separator/LICENSE | 22 + .../plugin-syntax-numeric-separator/README.md | 19 + .../lib/index.js | 22 + .../package.json | 28 + .../plugin-syntax-object-rest-spread/LICENSE | 22 + .../README.md | 19 + .../lib/index.js | 22 + .../package.json | 23 + .../LICENSE | 22 + .../README.md | 19 + .../lib/index.js | 22 + .../package.json | 23 + .../plugin-syntax-optional-chaining/LICENSE | 22 + .../plugin-syntax-optional-chaining/README.md | 19 + .../lib/index.js | 22 + .../package.json | 23 + .../plugin-syntax-top-level-await/LICENSE | 22 + .../plugin-syntax-top-level-await/README.md | 19 + .../lib/index.js | 22 + .../package.json | 32 + .../@babel/plugin-syntax-typescript/LICENSE | 22 + .../@babel/plugin-syntax-typescript/README.md | 19 + .../plugin-syntax-typescript/lib/index.js | 58 + .../plugin-syntax-typescript/lib/index.js.map | 1 + .../plugin-syntax-typescript/package.json | 35 + node_modules/@babel/template/LICENSE | 22 + node_modules/@babel/template/README.md | 19 + node_modules/@babel/template/lib/builder.js | 69 + .../@babel/template/lib/builder.js.map | 1 + .../@babel/template/lib/formatters.js | 66 + .../@babel/template/lib/formatters.js.map | 1 + node_modules/@babel/template/lib/index.js | 29 + node_modules/@babel/template/lib/index.js.map | 1 + node_modules/@babel/template/lib/literal.js | 70 + .../@babel/template/lib/literal.js.map | 1 + node_modules/@babel/template/lib/options.js | 74 + .../@babel/template/lib/options.js.map | 1 + node_modules/@babel/template/lib/parse.js | 168 + node_modules/@babel/template/lib/parse.js.map | 1 + node_modules/@babel/template/lib/populate.js | 123 + .../@babel/template/lib/populate.js.map | 1 + node_modules/@babel/template/lib/string.js | 20 + .../@babel/template/lib/string.js.map | 1 + node_modules/@babel/template/package.json | 27 + node_modules/@babel/traverse/LICENSE | 22 + node_modules/@babel/traverse/README.md | 19 + node_modules/@babel/traverse/lib/cache.js | 25 + node_modules/@babel/traverse/lib/cache.js.map | 1 + node_modules/@babel/traverse/lib/context.js | 127 + .../@babel/traverse/lib/context.js.map | 1 + node_modules/@babel/traverse/lib/hub.js | 19 + node_modules/@babel/traverse/lib/hub.js.map | 1 + node_modules/@babel/traverse/lib/index.js | 95 + node_modules/@babel/traverse/lib/index.js.map | 1 + .../@babel/traverse/lib/path/ancestry.js | 160 + .../@babel/traverse/lib/path/ancestry.js.map | 1 + .../@babel/traverse/lib/path/comments.js | 40 + .../@babel/traverse/lib/path/comments.js.map | 1 + .../@babel/traverse/lib/path/context.js | 232 + .../@babel/traverse/lib/path/context.js.map | 1 + .../@babel/traverse/lib/path/conversion.js | 492 + .../traverse/lib/path/conversion.js.map | 1 + .../@babel/traverse/lib/path/evaluation.js | 340 + .../traverse/lib/path/evaluation.js.map | 1 + .../@babel/traverse/lib/path/family.js | 342 + .../@babel/traverse/lib/path/family.js.map | 1 + .../@babel/traverse/lib/path/index.js | 202 + .../@babel/traverse/lib/path/index.js.map | 1 + .../traverse/lib/path/inference/index.js | 157 + .../traverse/lib/path/inference/index.js.map | 1 + .../lib/path/inference/inferer-reference.js | 163 + .../path/inference/inferer-reference.js.map | 1 + .../traverse/lib/path/inference/inferers.js | 210 + .../lib/path/inference/inferers.js.map | 1 + .../traverse/lib/path/inference/util.js | 30 + .../traverse/lib/path/inference/util.js.map | 1 + .../@babel/traverse/lib/path/introspection.js | 429 + .../traverse/lib/path/introspection.js.map | 1 + .../@babel/traverse/lib/path/lib/hoister.js | 192 + .../traverse/lib/path/lib/hoister.js.map | 1 + .../traverse/lib/path/lib/removal-hooks.js | 44 + .../lib/path/lib/removal-hooks.js.map | 1 + .../lib/path/lib/virtual-types-validator.js | 163 + .../path/lib/virtual-types-validator.js.map | 1 + .../traverse/lib/path/lib/virtual-types.js | 45 + .../lib/path/lib/virtual-types.js.map | 1 + .../@babel/traverse/lib/path/modification.js | 241 + .../traverse/lib/path/modification.js.map | 1 + .../@babel/traverse/lib/path/removal.js | 59 + .../@babel/traverse/lib/path/removal.js.map | 1 + .../@babel/traverse/lib/path/replacement.js | 219 + .../traverse/lib/path/replacement.js.map | 1 + .../@babel/traverse/lib/scope/binding.js | 90 + .../@babel/traverse/lib/scope/binding.js.map | 1 + .../@babel/traverse/lib/scope/index.js | 916 + .../@babel/traverse/lib/scope/index.js.map | 1 + .../@babel/traverse/lib/scope/lib/renamer.js | 104 + .../traverse/lib/scope/lib/renamer.js.map | 1 + .../@babel/traverse/lib/traverse-node.js | 25 + .../@babel/traverse/lib/traverse-node.js.map | 1 + node_modules/@babel/traverse/lib/types.js | 3 + node_modules/@babel/traverse/lib/types.js.map | 1 + node_modules/@babel/traverse/lib/visitors.js | 217 + .../@babel/traverse/lib/visitors.js.map | 1 + .../traverse/node_modules/debug/LICENSE | 20 + .../traverse/node_modules/debug/README.md | 481 + .../traverse/node_modules/debug/package.json | 59 + .../node_modules/debug/src/browser.js | 269 + .../traverse/node_modules/debug/src/common.js | 274 + .../traverse/node_modules/debug/src/index.js | 10 + .../traverse/node_modules/debug/src/node.js | 263 + .../@babel/traverse/node_modules/ms/index.js | 162 + .../traverse/node_modules/ms/license.md | 21 + .../traverse/node_modules/ms/package.json | 37 + .../@babel/traverse/node_modules/ms/readme.md | 60 + node_modules/@babel/traverse/package.json | 37 + node_modules/@babel/types/LICENSE | 22 + node_modules/@babel/types/README.md | 19 + .../@babel/types/lib/asserts/assertNode.js | 16 + .../types/lib/asserts/assertNode.js.map | 1 + .../types/lib/asserts/generated/index.js | 1226 ++ .../types/lib/asserts/generated/index.js.map | 1 + .../types/lib/ast-types/generated/index.js | 3 + .../lib/ast-types/generated/index.js.map | 1 + .../lib/builders/flow/createFlowUnionType.js | 18 + .../builders/flow/createFlowUnionType.js.map | 1 + .../flow/createTypeAnnotationBasedOnTypeof.js | 32 + .../createTypeAnnotationBasedOnTypeof.js.map | 1 + .../types/lib/builders/generated/index.js | 1985 +++ .../types/lib/builders/generated/index.js.map | 1 + .../types/lib/builders/generated/uppercase.js | 1526 ++ .../lib/builders/generated/uppercase.js.map | 1 + .../types/lib/builders/react/buildChildren.js | 24 + .../lib/builders/react/buildChildren.js.map | 1 + .../builders/typescript/createTSUnionType.js | 22 + .../typescript/createTSUnionType.js.map | 1 + .../@babel/types/lib/builders/validateNode.js | 17 + .../types/lib/builders/validateNode.js.map | 1 + node_modules/@babel/types/lib/clone/clone.js | 12 + .../@babel/types/lib/clone/clone.js.map | 1 + .../@babel/types/lib/clone/cloneDeep.js | 12 + .../@babel/types/lib/clone/cloneDeep.js.map | 1 + .../types/lib/clone/cloneDeepWithoutLoc.js | 12 + .../lib/clone/cloneDeepWithoutLoc.js.map | 1 + .../@babel/types/lib/clone/cloneNode.js | 104 + .../@babel/types/lib/clone/cloneNode.js.map | 1 + .../@babel/types/lib/clone/cloneWithoutLoc.js | 12 + .../types/lib/clone/cloneWithoutLoc.js.map | 1 + .../@babel/types/lib/comments/addComment.js | 15 + .../types/lib/comments/addComment.js.map | 1 + .../@babel/types/lib/comments/addComments.js | 22 + .../types/lib/comments/addComments.js.map | 1 + .../lib/comments/inheritInnerComments.js | 12 + .../lib/comments/inheritInnerComments.js.map | 1 + .../lib/comments/inheritLeadingComments.js | 12 + .../comments/inheritLeadingComments.js.map | 1 + .../lib/comments/inheritTrailingComments.js | 12 + .../comments/inheritTrailingComments.js.map | 1 + .../types/lib/comments/inheritsComments.js | 17 + .../lib/comments/inheritsComments.js.map | 1 + .../types/lib/comments/removeComments.js | 15 + .../types/lib/comments/removeComments.js.map | 1 + .../types/lib/constants/generated/index.js | 108 + .../lib/constants/generated/index.js.map | 1 + .../@babel/types/lib/constants/index.js | 51 + .../@babel/types/lib/constants/index.js.map | 1 + .../types/lib/converters/ensureBlock.js | 14 + .../types/lib/converters/ensureBlock.js.map | 1 + .../converters/gatherSequenceExpressions.js | 67 + .../gatherSequenceExpressions.js.map | 1 + .../lib/converters/toBindingIdentifierName.js | 14 + .../converters/toBindingIdentifierName.js.map | 1 + .../@babel/types/lib/converters/toBlock.js | 29 + .../types/lib/converters/toBlock.js.map | 1 + .../types/lib/converters/toComputedKey.js | 15 + .../types/lib/converters/toComputedKey.js.map | 1 + .../types/lib/converters/toExpression.js | 31 + .../types/lib/converters/toExpression.js.map | 1 + .../types/lib/converters/toIdentifier.js | 28 + .../types/lib/converters/toIdentifier.js.map | 1 + .../@babel/types/lib/converters/toKeyAlias.js | 41 + .../types/lib/converters/toKeyAlias.js.map | 1 + .../lib/converters/toSequenceExpression.js | 20 + .../converters/toSequenceExpression.js.map | 1 + .../types/lib/converters/toStatement.js | 43 + .../types/lib/converters/toStatement.js.map | 1 + .../types/lib/converters/valueToNode.js | 85 + .../types/lib/converters/valueToNode.js.map | 1 + .../@babel/types/lib/definitions/core.js | 1684 ++ .../@babel/types/lib/definitions/core.js.map | 1 + .../types/lib/definitions/experimental.js | 137 + .../types/lib/definitions/experimental.js.map | 1 + .../@babel/types/lib/definitions/flow.js | 486 + .../@babel/types/lib/definitions/flow.js.map | 1 + .../@babel/types/lib/definitions/index.js | 87 + .../@babel/types/lib/definitions/index.js.map | 1 + .../@babel/types/lib/definitions/jsx.js | 158 + .../@babel/types/lib/definitions/jsx.js.map | 1 + .../@babel/types/lib/definitions/misc.js | 32 + .../@babel/types/lib/definitions/misc.js.map | 1 + .../types/lib/definitions/placeholders.js | 30 + .../types/lib/definitions/placeholders.js.map | 1 + .../types/lib/definitions/typescript.js | 488 + .../types/lib/definitions/typescript.js.map | 1 + .../@babel/types/lib/definitions/utils.js | 281 + .../@babel/types/lib/definitions/utils.js.map | 1 + .../@babel/types/lib/index-legacy.d.ts | 2742 +++ node_modules/@babel/types/lib/index.d.ts | 3231 ++++ node_modules/@babel/types/lib/index.js | 575 + node_modules/@babel/types/lib/index.js.flow | 2596 +++ node_modules/@babel/types/lib/index.js.map | 1 + .../modifications/appendToMemberExpression.js | 15 + .../appendToMemberExpression.js.map | 1 + .../flow/removeTypeDuplicates.js | 71 + .../flow/removeTypeDuplicates.js.map | 1 + .../types/lib/modifications/inherits.js | 31 + .../types/lib/modifications/inherits.js.map | 1 + .../prependToMemberExpression.js | 17 + .../prependToMemberExpression.js.map | 1 + .../lib/modifications/removeProperties.js | 26 + .../lib/modifications/removeProperties.js.map | 1 + .../lib/modifications/removePropertiesDeep.js | 14 + .../modifications/removePropertiesDeep.js.map | 1 + .../typescript/removeTypeDuplicates.js | 71 + .../typescript/removeTypeDuplicates.js.map | 1 + .../lib/retrievers/getBindingIdentifiers.js | 97 + .../retrievers/getBindingIdentifiers.js.map | 1 + .../retrievers/getOuterBindingIdentifiers.js | 14 + .../getOuterBindingIdentifiers.js.map | 1 + .../@babel/types/lib/traverse/traverse.js | 50 + .../@babel/types/lib/traverse/traverse.js.map | 1 + .../@babel/types/lib/traverse/traverseFast.js | 27 + .../types/lib/traverse/traverseFast.js.map | 1 + .../@babel/types/lib/utils/inherit.js | 13 + .../@babel/types/lib/utils/inherit.js.map | 1 + .../react/cleanJSXElementLiteralChild.js | 43 + .../react/cleanJSXElementLiteralChild.js.map | 1 + .../@babel/types/lib/utils/shallowEqual.js | 18 + .../types/lib/utils/shallowEqual.js.map | 1 + .../validators/buildMatchMemberExpression.js | 13 + .../buildMatchMemberExpression.js.map | 1 + .../types/lib/validators/generated/index.js | 3939 ++++ .../lib/validators/generated/index.js.map | 1 + .../@babel/types/lib/validators/is.js | 27 + .../@babel/types/lib/validators/is.js.map | 1 + .../@babel/types/lib/validators/isBinding.js | 29 + .../types/lib/validators/isBinding.js.map | 1 + .../types/lib/validators/isBlockScoped.js | 13 + .../types/lib/validators/isBlockScoped.js.map | 1 + .../types/lib/validators/isImmutable.js | 21 + .../types/lib/validators/isImmutable.js.map | 1 + .../@babel/types/lib/validators/isLet.js | 14 + .../@babel/types/lib/validators/isLet.js.map | 1 + .../@babel/types/lib/validators/isNode.js | 12 + .../@babel/types/lib/validators/isNode.js.map | 1 + .../types/lib/validators/isNodesEquivalent.js | 58 + .../lib/validators/isNodesEquivalent.js.map | 1 + .../types/lib/validators/isPlaceholderType.js | 19 + .../lib/validators/isPlaceholderType.js.map | 1 + .../types/lib/validators/isReferenced.js | 117 + .../types/lib/validators/isReferenced.js.map | 1 + .../@babel/types/lib/validators/isScope.js | 19 + .../types/lib/validators/isScope.js.map | 1 + .../lib/validators/isSpecifierDefault.js | 15 + .../lib/validators/isSpecifierDefault.js.map | 1 + .../@babel/types/lib/validators/isType.js | 22 + .../@babel/types/lib/validators/isType.js.map | 1 + .../lib/validators/isValidES3Identifier.js | 14 + .../validators/isValidES3Identifier.js.map | 1 + .../types/lib/validators/isValidIdentifier.js | 18 + .../lib/validators/isValidIdentifier.js.map | 1 + .../@babel/types/lib/validators/isVar.js | 16 + .../@babel/types/lib/validators/isVar.js.map | 1 + .../types/lib/validators/matchesPattern.js | 36 + .../lib/validators/matchesPattern.js.map | 1 + .../types/lib/validators/react/isCompatTag.js | 11 + .../lib/validators/react/isCompatTag.js.map | 1 + .../lib/validators/react/isReactComponent.js | 12 + .../validators/react/isReactComponent.js.map | 1 + .../@babel/types/lib/validators/validate.js | 30 + .../types/lib/validators/validate.js.map | 1 + node_modules/@babel/types/package.json | 41 + node_modules/@bcoe/v8-coverage/.editorconfig | 9 + node_modules/@bcoe/v8-coverage/.gitattributes | 2 + node_modules/@bcoe/v8-coverage/CHANGELOG.md | 250 + node_modules/@bcoe/v8-coverage/LICENSE.md | 21 + node_modules/@bcoe/v8-coverage/LICENSE.txt | 14 + node_modules/@bcoe/v8-coverage/README.md | 11 + .../@bcoe/v8-coverage/dist/lib/CHANGELOG.md | 250 + .../@bcoe/v8-coverage/dist/lib/LICENSE.md | 21 + .../@bcoe/v8-coverage/dist/lib/README.md | 11 + .../@bcoe/v8-coverage/dist/lib/_src/ascii.ts | 146 + .../@bcoe/v8-coverage/dist/lib/_src/clone.ts | 70 + .../v8-coverage/dist/lib/_src/compare.ts | 40 + .../@bcoe/v8-coverage/dist/lib/_src/index.ts | 6 + .../@bcoe/v8-coverage/dist/lib/_src/merge.ts | 343 + .../v8-coverage/dist/lib/_src/normalize.ts | 84 + .../v8-coverage/dist/lib/_src/range-tree.ts | 156 + .../@bcoe/v8-coverage/dist/lib/_src/types.ts | 26 + .../@bcoe/v8-coverage/dist/lib/ascii.d.ts | 12 + .../@bcoe/v8-coverage/dist/lib/ascii.js | 136 + .../@bcoe/v8-coverage/dist/lib/ascii.mjs | 130 + .../@bcoe/v8-coverage/dist/lib/clone.d.ts | 29 + .../@bcoe/v8-coverage/dist/lib/clone.js | 70 + .../@bcoe/v8-coverage/dist/lib/clone.mjs | 64 + .../@bcoe/v8-coverage/dist/lib/compare.d.ts | 21 + .../@bcoe/v8-coverage/dist/lib/compare.js | 46 + .../@bcoe/v8-coverage/dist/lib/compare.mjs | 41 + .../@bcoe/v8-coverage/dist/lib/index.d.ts | 6 + .../@bcoe/v8-coverage/dist/lib/index.js | 24 + .../@bcoe/v8-coverage/dist/lib/index.mjs | 7 + .../@bcoe/v8-coverage/dist/lib/merge.d.ts | 39 + .../@bcoe/v8-coverage/dist/lib/merge.js | 302 + .../@bcoe/v8-coverage/dist/lib/merge.mjs | 297 + .../@bcoe/v8-coverage/dist/lib/normalize.d.ts | 53 + .../@bcoe/v8-coverage/dist/lib/normalize.js | 87 + .../@bcoe/v8-coverage/dist/lib/normalize.mjs | 79 + .../@bcoe/v8-coverage/dist/lib/package.json | 44 + .../v8-coverage/dist/lib/range-tree.d.ts | 24 + .../@bcoe/v8-coverage/dist/lib/range-tree.js | 139 + .../@bcoe/v8-coverage/dist/lib/range-tree.mjs | 136 + .../@bcoe/v8-coverage/dist/lib/tsconfig.json | 62 + .../@bcoe/v8-coverage/dist/lib/types.d.ts | 22 + .../@bcoe/v8-coverage/dist/lib/types.js | 4 + .../@bcoe/v8-coverage/dist/lib/types.mjs | 3 + node_modules/@bcoe/v8-coverage/gulpfile.ts | 95 + node_modules/@bcoe/v8-coverage/package.json | 48 + .../@bcoe/v8-coverage/src/lib/ascii.ts | 146 + .../@bcoe/v8-coverage/src/lib/clone.ts | 70 + .../@bcoe/v8-coverage/src/lib/compare.ts | 40 + .../@bcoe/v8-coverage/src/lib/index.ts | 6 + .../@bcoe/v8-coverage/src/lib/merge.ts | 343 + .../@bcoe/v8-coverage/src/lib/normalize.ts | 84 + .../@bcoe/v8-coverage/src/lib/range-tree.ts | 156 + .../@bcoe/v8-coverage/src/lib/types.ts | 26 + .../@bcoe/v8-coverage/src/test/merge.spec.ts | 280 + node_modules/@bcoe/v8-coverage/tsconfig.json | 59 + .../@istanbuljs/load-nyc-config/CHANGELOG.md | 41 + .../@istanbuljs/load-nyc-config/LICENSE | 16 + .../@istanbuljs/load-nyc-config/README.md | 64 + .../@istanbuljs/load-nyc-config/index.js | 166 + .../@istanbuljs/load-nyc-config/load-esm.js | 12 + .../@istanbuljs/load-nyc-config/package.json | 49 + node_modules/@istanbuljs/schema/CHANGELOG.md | 44 + node_modules/@istanbuljs/schema/LICENSE | 21 + node_modules/@istanbuljs/schema/README.md | 30 + .../@istanbuljs/schema/default-exclude.js | 22 + .../@istanbuljs/schema/default-extension.js | 10 + node_modules/@istanbuljs/schema/index.js | 466 + node_modules/@istanbuljs/schema/package.json | 30 + node_modules/@jest/console/LICENSE | 21 + .../@jest/console/build/BufferedConsole.js | 202 + .../@jest/console/build/CustomConsole.js | 182 + .../@jest/console/build/NullConsole.js | 35 + .../@jest/console/build/getConsoleOutput.js | 70 + node_modules/@jest/console/build/index.d.ts | 131 + node_modules/@jest/console/build/index.js | 36 + node_modules/@jest/console/build/types.js | 1 + node_modules/@jest/console/package.json | 37 + node_modules/@jest/core/LICENSE | 21 + node_modules/@jest/core/README.md | 3 + .../@jest/core/build/FailedTestsCache.js | 38 + .../core/build/FailedTestsInteractiveMode.js | 195 + .../@jest/core/build/ReporterDispatcher.js | 80 + node_modules/@jest/core/build/SearchSource.js | 408 + .../core/build/SnapshotInteractiveMode.js | 238 + .../@jest/core/build/TestNamePatternPrompt.js | 39 + .../@jest/core/build/TestPathPatternPrompt.js | 39 + .../@jest/core/build/TestScheduler.js | 451 + node_modules/@jest/core/build/cli/index.js | 400 + .../@jest/core/build/collectHandles.js | 266 + .../core/build/getChangedFilesPromise.js | 65 + .../core/build/getConfigsOfProjectsToRun.js | 40 + .../@jest/core/build/getNoTestFound.js | 68 + .../@jest/core/build/getNoTestFoundFailed.js | 43 + .../build/getNoTestFoundPassWithNoTests.js | 26 + .../getNoTestFoundRelatedToChangedFiles.js | 48 + .../@jest/core/build/getNoTestFoundVerbose.js | 85 + .../core/build/getNoTestsFoundMessage.js | 64 + .../@jest/core/build/getProjectDisplayName.js | 16 + .../build/getProjectNamesMissingWarning.js | 49 + .../core/build/getSelectProjectsMessage.js | 71 + node_modules/@jest/core/build/index.d.ts | 118 + node_modules/@jest/core/build/index.js | 36 + .../core/build/lib/activeFiltersMessage.js | 47 + .../@jest/core/build/lib/createContext.js | 31 + .../build/lib/handleDeprecationWarnings.js | 65 + .../@jest/core/build/lib/isValidPath.js | 26 + .../@jest/core/build/lib/logDebugMessages.js | 24 + .../core/build/lib/updateGlobalConfig.js | 95 + .../core/build/lib/watchPluginsHelpers.js | 52 + .../build/plugins/FailedTestsInteractive.js | 96 + node_modules/@jest/core/build/plugins/Quit.js | 42 + .../core/build/plugins/TestNamePattern.js | 70 + .../core/build/plugins/TestPathPattern.js | 70 + .../core/build/plugins/UpdateSnapshots.js | 51 + .../plugins/UpdateSnapshotsInteractive.js | 99 + node_modules/@jest/core/build/pluralize.js | 16 + .../@jest/core/build/runGlobalHook.js | 126 + node_modules/@jest/core/build/runJest.js | 366 + .../@jest/core/build/testSchedulerHelper.js | 48 + node_modules/@jest/core/build/types.js | 1 + node_modules/@jest/core/build/version.js | 18 + node_modules/@jest/core/build/watch.js | 666 + node_modules/@jest/core/package.json | 102 + node_modules/@jest/environment/LICENSE | 21 + .../@jest/environment/build/index.d.ts | 356 + node_modules/@jest/environment/build/index.js | 1 + node_modules/@jest/environment/package.json | 32 + node_modules/@jest/expect-utils/LICENSE | 21 + node_modules/@jest/expect-utils/README.md | 5 + .../expect-utils/build/immutableUtils.js | 66 + .../@jest/expect-utils/build/index.d.ts | 93 + .../@jest/expect-utils/build/index.js | 34 + .../@jest/expect-utils/build/jasmineUtils.js | 210 + .../@jest/expect-utils/build/types.js | 1 + .../@jest/expect-utils/build/utils.js | 394 + node_modules/@jest/expect-utils/package.json | 35 + node_modules/@jest/expect/LICENSE | 21 + node_modules/@jest/expect/README.md | 5 + node_modules/@jest/expect/build/index.d.ts | 68 + node_modules/@jest/expect/build/index.js | 40 + node_modules/@jest/expect/build/types.js | 1 + node_modules/@jest/expect/package.json | 34 + node_modules/@jest/fake-timers/LICENSE | 21 + .../@jest/fake-timers/build/index.d.ts | 106 + node_modules/@jest/fake-timers/build/index.js | 22 + .../fake-timers/build/legacyFakeTimers.js | 545 + .../fake-timers/build/modernFakeTimers.js | 164 + node_modules/@jest/fake-timers/package.json | 38 + node_modules/@jest/globals/LICENSE | 21 + node_modules/@jest/globals/build/index.d.ts | 67 + node_modules/@jest/globals/build/index.js | 14 + node_modules/@jest/globals/package.json | 32 + node_modules/@jest/reporters/LICENSE | 21 + .../@jest/reporters/assets/jest_logo.png | Bin 0 -> 3030 bytes .../@jest/reporters/build/BaseReporter.js | 48 + .../@jest/reporters/build/CoverageReporter.js | 560 + .../@jest/reporters/build/CoverageWorker.js | 89 + .../@jest/reporters/build/DefaultReporter.js | 229 + .../reporters/build/GitHubActionsReporter.js | 82 + .../@jest/reporters/build/NotifyReporter.js | 218 + node_modules/@jest/reporters/build/Status.js | 214 + .../@jest/reporters/build/SummaryReporter.js | 229 + .../@jest/reporters/build/VerboseReporter.js | 175 + .../@jest/reporters/build/formatTestPath.js | 84 + .../reporters/build/generateEmptyCoverage.js | 151 + .../@jest/reporters/build/getResultHeader.js | 65 + .../reporters/build/getSnapshotStatus.js | 92 + .../reporters/build/getSnapshotSummary.js | 169 + .../@jest/reporters/build/getSummary.js | 206 + .../@jest/reporters/build/getWatermarks.js | 38 + node_modules/@jest/reporters/build/index.d.ts | 284 + node_modules/@jest/reporters/build/index.js | 88 + .../@jest/reporters/build/printDisplayName.js | 35 + .../@jest/reporters/build/relativePath.js | 72 + .../reporters/build/trimAndFormatPath.js | 118 + node_modules/@jest/reporters/build/types.js | 1 + .../@jest/reporters/build/wrapAnsiString.js | 69 + node_modules/@jest/reporters/package.json | 81 + node_modules/@jest/schemas/LICENSE | 21 + node_modules/@jest/schemas/README.md | 3 + node_modules/@jest/schemas/build/index.d.ts | 72 + node_modules/@jest/schemas/build/index.js | 65 + node_modules/@jest/schemas/package.json | 29 + node_modules/@jest/source-map/LICENSE | 21 + .../@jest/source-map/build/getCallsite.js | 85 + .../@jest/source-map/build/index.d.ts | 16 + node_modules/@jest/source-map/build/index.js | 15 + node_modules/@jest/source-map/build/types.js | 1 + node_modules/@jest/source-map/package.json | 34 + node_modules/@jest/test-result/LICENSE | 21 + .../test-result/build/formatTestResults.js | 51 + .../@jest/test-result/build/helpers.js | 175 + .../@jest/test-result/build/index.d.ts | 230 + node_modules/@jest/test-result/build/index.js | 40 + node_modules/@jest/test-result/build/types.js | 1 + node_modules/@jest/test-result/package.json | 32 + node_modules/@jest/test-sequencer/LICENSE | 21 + .../@jest/test-sequencer/build/index.d.ts | 85 + .../@jest/test-sequencer/build/index.js | 288 + .../@jest/test-sequencer/package.json | 36 + node_modules/@jest/transform/LICENSE | 21 + .../transform/build/ScriptTransformer.js | 979 + .../build/enhanceUnexpectedTokenMessage.js | 76 + node_modules/@jest/transform/build/index.d.ts | 237 + node_modules/@jest/transform/build/index.js | 37 + .../build/runtimeErrorsAndWarnings.js | 94 + .../@jest/transform/build/shouldInstrument.js | 167 + node_modules/@jest/transform/build/types.js | 1 + node_modules/@jest/transform/package.json | 52 + node_modules/@jest/types/LICENSE | 21 + node_modules/@jest/types/README.md | 30 + node_modules/@jest/types/build/Circus.js | 1 + node_modules/@jest/types/build/Config.js | 1 + node_modules/@jest/types/build/Global.js | 1 + node_modules/@jest/types/build/TestResult.js | 1 + node_modules/@jest/types/build/Transform.js | 1 + node_modules/@jest/types/build/index.d.ts | 1169 ++ node_modules/@jest/types/build/index.js | 1 + node_modules/@jest/types/package.json | 38 + node_modules/@jridgewell/gen-mapping/LICENSE | 19 + .../@jridgewell/gen-mapping/README.md | 128 + .../gen-mapping/dist/gen-mapping.mjs | 167 + .../gen-mapping/dist/gen-mapping.mjs.map | 1 + .../gen-mapping/dist/gen-mapping.umd.js | 174 + .../gen-mapping/dist/gen-mapping.umd.js.map | 1 + .../gen-mapping/dist/types/gen-mapping.d.ts | 70 + .../dist/types/sourcemap-segment.d.ts | 12 + .../gen-mapping/dist/types/types.d.ts | 35 + .../@jridgewell/gen-mapping/package.json | 72 + node_modules/@jridgewell/resolve-uri/LICENSE | 19 + .../@jridgewell/resolve-uri/README.md | 40 + .../resolve-uri/dist/resolve-uri.mjs | 242 + .../resolve-uri/dist/resolve-uri.mjs.map | 1 + .../resolve-uri/dist/resolve-uri.umd.js | 250 + .../resolve-uri/dist/resolve-uri.umd.js.map | 1 + .../resolve-uri/dist/types/resolve-uri.d.ts | 4 + .../@jridgewell/resolve-uri/package.json | 69 + node_modules/@jridgewell/set-array/LICENSE | 19 + node_modules/@jridgewell/set-array/README.md | 37 + .../@jridgewell/set-array/dist/set-array.mjs | 48 + .../set-array/dist/set-array.mjs.map | 1 + .../set-array/dist/set-array.umd.js | 58 + .../set-array/dist/set-array.umd.js.map | 1 + .../set-array/dist/types/set-array.d.ts | 26 + .../@jridgewell/set-array/package.json | 66 + .../@jridgewell/set-array/src/set-array.ts | 55 + .../@jridgewell/sourcemap-codec/LICENSE | 21 + .../@jridgewell/sourcemap-codec/README.md | 200 + .../sourcemap-codec/dist/sourcemap-codec.mjs | 164 + .../dist/sourcemap-codec.mjs.map | 1 + .../dist/sourcemap-codec.umd.js | 175 + .../dist/sourcemap-codec.umd.js.map | 1 + .../dist/types/sourcemap-codec.d.ts | 6 + .../@jridgewell/sourcemap-codec/package.json | 75 + .../sourcemap-codec/src/sourcemap-codec.ts | 198 + .../@jridgewell/trace-mapping/LICENSE | 19 + .../@jridgewell/trace-mapping/README.md | 252 + .../trace-mapping/dist/trace-mapping.mjs | 552 + .../trace-mapping/dist/trace-mapping.mjs.map | 1 + .../trace-mapping/dist/trace-mapping.umd.js | 566 + .../dist/trace-mapping.umd.js.map | 1 + .../trace-mapping/dist/types/any-map.d.ts | 8 + .../dist/types/binary-search.d.ts | 32 + .../trace-mapping/dist/types/by-source.d.ts | 7 + .../trace-mapping/dist/types/resolve.d.ts | 1 + .../trace-mapping/dist/types/sort.d.ts | 2 + .../dist/types/sourcemap-segment.d.ts | 16 + .../dist/types/strip-filename.d.ts | 4 + .../dist/types/trace-mapping.d.ts | 74 + .../trace-mapping/dist/types/types.d.ts | 92 + .../@jridgewell/trace-mapping/package.json | 75 + .../@mozilla/readability/.eslintrc.js | 0 .../@mozilla/readability/CODE_OF_CONDUCT.md | 0 .../@mozilla/readability/JSDOMParser.js | 0 node_modules/@mozilla/readability/README.md | 0 .../readability/Readability-readerable.js | 0 .../@mozilla/readability/Readability.js | 0 node_modules/@mozilla/readability/index.js | 0 .../@mozilla/readability/package.json | 0 .../@sinclair/typebox/compiler/compiler.d.ts | 28 + .../@sinclair/typebox/compiler/compiler.js | 409 + .../@sinclair/typebox/compiler/index.d.ts | 2 + .../@sinclair/typebox/compiler/index.js | 47 + .../typebox/conditional/conditional.d.ts | 17 + .../typebox/conditional/conditional.js | 91 + .../@sinclair/typebox/conditional/index.d.ts | 2 + .../@sinclair/typebox/conditional/index.js | 45 + .../typebox/conditional/structural.d.ts | 11 + .../typebox/conditional/structural.js | 657 + .../@sinclair/typebox/errors/errors.d.ts | 60 + .../@sinclair/typebox/errors/errors.js | 398 + .../@sinclair/typebox/errors/index.d.ts | 1 + .../@sinclair/typebox/errors/index.js | 44 + .../@sinclair/typebox/format/format.d.ts | 12 + .../@sinclair/typebox/format/format.js | 55 + .../@sinclair/typebox/format/index.d.ts | 1 + .../@sinclair/typebox/format/index.js | 44 + .../@sinclair/typebox/guard/guard.d.ts | 56 + node_modules/@sinclair/typebox/guard/guard.js | 351 + .../@sinclair/typebox/guard/index.d.ts | 1 + node_modules/@sinclair/typebox/guard/index.js | 44 + node_modules/@sinclair/typebox/license | 23 + node_modules/@sinclair/typebox/package.json | 40 + node_modules/@sinclair/typebox/readme.md | 1152 ++ node_modules/@sinclair/typebox/typebox.d.ts | 408 + node_modules/@sinclair/typebox/typebox.js | 383 + .../@sinclair/typebox/value/cast.d.ts | 26 + node_modules/@sinclair/typebox/value/cast.js | 364 + .../@sinclair/typebox/value/check.d.ts | 8 + node_modules/@sinclair/typebox/value/check.js | 331 + .../@sinclair/typebox/value/clone.d.ts | 3 + node_modules/@sinclair/typebox/value/clone.js | 65 + .../@sinclair/typebox/value/create.d.ts | 14 + .../@sinclair/typebox/value/create.js | 357 + .../@sinclair/typebox/value/delta.d.ts | 22 + node_modules/@sinclair/typebox/value/delta.js | 168 + .../@sinclair/typebox/value/equal.d.ts | 3 + node_modules/@sinclair/typebox/value/equal.js | 74 + .../@sinclair/typebox/value/index.d.ts | 3 + node_modules/@sinclair/typebox/value/index.js | 48 + node_modules/@sinclair/typebox/value/is.d.ts | 10 + node_modules/@sinclair/typebox/value/is.js | 49 + .../@sinclair/typebox/value/pointer.d.ts | 24 + .../@sinclair/typebox/value/pointer.js | 142 + .../@sinclair/typebox/value/value.d.ts | 31 + node_modules/@sinclair/typebox/value/value.js | 81 + node_modules/@sinonjs/commons/LICENSE | 29 + node_modules/@sinonjs/commons/README.md | 16 + .../@sinonjs/commons/lib/called-in-order.js | 57 + .../commons/lib/called-in-order.test.js | 121 + .../@sinonjs/commons/lib/class-name.js | 27 + .../@sinonjs/commons/lib/class-name.test.js | 37 + .../@sinonjs/commons/lib/deprecated.js | 58 + .../@sinonjs/commons/lib/deprecated.test.js | 101 + node_modules/@sinonjs/commons/lib/every.js | 27 + .../@sinonjs/commons/lib/every.test.js | 41 + .../@sinonjs/commons/lib/function-name.js | 29 + .../commons/lib/function-name.test.js | 76 + node_modules/@sinonjs/commons/lib/global.js | 22 + .../@sinonjs/commons/lib/global.test.js | 16 + node_modules/@sinonjs/commons/lib/index.js | 14 + .../@sinonjs/commons/lib/index.test.js | 31 + .../commons/lib/order-by-first-call.js | 36 + .../commons/lib/order-by-first-call.test.js | 52 + .../@sinonjs/commons/lib/prototypes/README.md | 43 + .../@sinonjs/commons/lib/prototypes/array.js | 5 + .../lib/prototypes/copy-prototype-methods.js | 40 + .../prototypes/copy-prototype-methods.test.js | 12 + .../commons/lib/prototypes/function.js | 5 + .../@sinonjs/commons/lib/prototypes/index.js | 10 + .../commons/lib/prototypes/index.test.js | 61 + .../@sinonjs/commons/lib/prototypes/map.js | 5 + .../@sinonjs/commons/lib/prototypes/object.js | 5 + .../@sinonjs/commons/lib/prototypes/set.js | 5 + .../@sinonjs/commons/lib/prototypes/string.js | 5 + .../commons/lib/prototypes/throws-on-proto.js | 26 + node_modules/@sinonjs/commons/lib/type-of.js | 13 + .../@sinonjs/commons/lib/type-of.test.js | 51 + .../@sinonjs/commons/lib/value-to-string.js | 17 + .../commons/lib/value-to-string.test.js | 20 + node_modules/@sinonjs/commons/package.json | 57 + .../commons/types/called-in-order.d.ts | 36 + .../@sinonjs/commons/types/class-name.d.ts | 8 + .../@sinonjs/commons/types/deprecated.d.ts | 3 + .../@sinonjs/commons/types/every.d.ts | 2 + .../@sinonjs/commons/types/function-name.d.ts | 2 + .../@sinonjs/commons/types/global.d.ts | 7 + .../@sinonjs/commons/types/index.d.ts | 17 + .../commons/types/order-by-first-call.d.ts | 26 + .../commons/types/prototypes/array.d.ts | 2 + .../prototypes/copy-prototype-methods.d.ts | 2 + .../commons/types/prototypes/function.d.ts | 2 + .../commons/types/prototypes/index.d.ts | 7 + .../commons/types/prototypes/map.d.ts | 2 + .../commons/types/prototypes/object.d.ts | 2 + .../commons/types/prototypes/set.d.ts | 2 + .../commons/types/prototypes/string.d.ts | 2 + .../types/prototypes/throws-on-proto.d.ts | 12 + .../@sinonjs/commons/types/type-of.d.ts | 2 + .../commons/types/value-to-string.d.ts | 8 + .../@sinonjs/fake-timers/CHANGELOG.md | 469 + node_modules/@sinonjs/fake-timers/LICENSE | 11 + node_modules/@sinonjs/fake-timers/README.md | 351 + .../@sinonjs/fake-timers/package.json | 71 + .../fake-timers/src/fake-timers-src.js | 1766 ++ .../@tootallnate/once/dist/index.d.ts | 0 node_modules/@tootallnate/once/dist/index.js | 0 .../@tootallnate/once/dist/index.js.map | 0 node_modules/@tootallnate/once/package.json | 0 node_modules/@types/babel__core/LICENSE | 21 + node_modules/@types/babel__core/README.md | 16 + node_modules/@types/babel__core/index.d.ts | 807 + node_modules/@types/babel__core/package.json | 51 + node_modules/@types/babel__generator/LICENSE | 21 + .../@types/babel__generator/README.md | 16 + .../@types/babel__generator/index.d.ts | 211 + .../@types/babel__generator/package.json | 42 + node_modules/@types/babel__template/LICENSE | 21 + node_modules/@types/babel__template/README.md | 16 + .../@types/babel__template/index.d.ts | 100 + .../@types/babel__template/package.json | 43 + node_modules/@types/babel__traverse/LICENSE | 21 + node_modules/@types/babel__traverse/README.md | 16 + .../@types/babel__traverse/index.d.ts | 1199 ++ .../@types/babel__traverse/package.json | 62 + node_modules/@types/graceful-fs/LICENSE | 21 + node_modules/@types/graceful-fs/README.md | 16 + node_modules/@types/graceful-fs/index.d.ts | 19 + node_modules/@types/graceful-fs/package.json | 31 + .../@types/istanbul-lib-coverage/LICENSE | 21 + .../@types/istanbul-lib-coverage/README.md | 16 + .../@types/istanbul-lib-coverage/index.d.ts | 117 + .../@types/istanbul-lib-coverage/package.json | 25 + .../@types/istanbul-lib-report/LICENSE | 21 + .../@types/istanbul-lib-report/README.md | 16 + .../@types/istanbul-lib-report/index.d.ts | 191 + .../@types/istanbul-lib-report/package.json | 31 + node_modules/@types/istanbul-reports/LICENSE | 21 + .../@types/istanbul-reports/README.md | 94 + .../@types/istanbul-reports/index.d.ts | 74 + .../@types/istanbul-reports/package.json | 32 + node_modules/@types/node/LICENSE | 21 + node_modules/@types/node/README.md | 16 + node_modules/@types/node/assert.d.ts | 961 + node_modules/@types/node/assert/strict.d.ts | 8 + node_modules/@types/node/async_hooks.d.ts | 501 + node_modules/@types/node/buffer.d.ts | 2258 +++ node_modules/@types/node/child_process.d.ts | 1369 ++ node_modules/@types/node/cluster.d.ts | 410 + node_modules/@types/node/console.d.ts | 412 + node_modules/@types/node/constants.d.ts | 18 + node_modules/@types/node/crypto.d.ts | 3964 +++++ node_modules/@types/node/dgram.d.ts | 545 + .../@types/node/diagnostics_channel.d.ts | 153 + node_modules/@types/node/dns.d.ts | 659 + node_modules/@types/node/dns/promises.d.ts | 370 + node_modules/@types/node/dom-events.d.ts | 126 + node_modules/@types/node/domain.d.ts | 170 + node_modules/@types/node/events.d.ts | 678 + node_modules/@types/node/fs.d.ts | 3872 ++++ node_modules/@types/node/fs/promises.d.ts | 1138 ++ node_modules/@types/node/globals.d.ts | 300 + node_modules/@types/node/globals.global.d.ts | 1 + node_modules/@types/node/http.d.ts | 1651 ++ node_modules/@types/node/http2.d.ts | 2134 +++ node_modules/@types/node/https.d.ts | 542 + node_modules/@types/node/index.d.ts | 134 + node_modules/@types/node/inspector.d.ts | 2741 +++ node_modules/@types/node/module.d.ts | 114 + node_modules/@types/node/net.d.ts | 869 + node_modules/@types/node/os.d.ts | 466 + node_modules/@types/node/package.json | 237 + node_modules/@types/node/path.d.ts | 191 + node_modules/@types/node/perf_hooks.d.ts | 625 + node_modules/@types/node/process.d.ts | 1482 ++ node_modules/@types/node/punycode.d.ts | 117 + node_modules/@types/node/querystring.d.ts | 131 + node_modules/@types/node/readline.d.ts | 653 + .../@types/node/readline/promises.d.ts | 143 + node_modules/@types/node/repl.d.ts | 424 + node_modules/@types/node/stream.d.ts | 1340 ++ .../@types/node/stream/consumers.d.ts | 12 + node_modules/@types/node/stream/promises.d.ts | 42 + node_modules/@types/node/stream/web.d.ts | 330 + node_modules/@types/node/string_decoder.d.ts | 67 + node_modules/@types/node/test.d.ts | 446 + node_modules/@types/node/timers.d.ts | 94 + node_modules/@types/node/timers/promises.d.ts | 93 + node_modules/@types/node/tls.d.ts | 1028 ++ node_modules/@types/node/trace_events.d.ts | 171 + node_modules/@types/node/ts4.8/assert.d.ts | 961 + .../@types/node/ts4.8/assert/strict.d.ts | 8 + .../@types/node/ts4.8/async_hooks.d.ts | 501 + node_modules/@types/node/ts4.8/buffer.d.ts | 2259 +++ .../@types/node/ts4.8/child_process.d.ts | 1369 ++ node_modules/@types/node/ts4.8/cluster.d.ts | 410 + node_modules/@types/node/ts4.8/console.d.ts | 412 + node_modules/@types/node/ts4.8/constants.d.ts | 18 + node_modules/@types/node/ts4.8/crypto.d.ts | 3964 +++++ node_modules/@types/node/ts4.8/dgram.d.ts | 545 + .../node/ts4.8/diagnostics_channel.d.ts | 153 + node_modules/@types/node/ts4.8/dns.d.ts | 659 + .../@types/node/ts4.8/dns/promises.d.ts | 370 + .../@types/node/ts4.8/dom-events.d.ts | 126 + node_modules/@types/node/ts4.8/domain.d.ts | 170 + node_modules/@types/node/ts4.8/events.d.ts | 678 + node_modules/@types/node/ts4.8/fs.d.ts | 3872 ++++ .../@types/node/ts4.8/fs/promises.d.ts | 1138 ++ node_modules/@types/node/ts4.8/globals.d.ts | 294 + .../@types/node/ts4.8/globals.global.d.ts | 1 + node_modules/@types/node/ts4.8/http.d.ts | 1651 ++ node_modules/@types/node/ts4.8/http2.d.ts | 2134 +++ node_modules/@types/node/ts4.8/https.d.ts | 542 + node_modules/@types/node/ts4.8/index.d.ts | 88 + node_modules/@types/node/ts4.8/inspector.d.ts | 2741 +++ node_modules/@types/node/ts4.8/module.d.ts | 114 + node_modules/@types/node/ts4.8/net.d.ts | 869 + node_modules/@types/node/ts4.8/os.d.ts | 466 + node_modules/@types/node/ts4.8/path.d.ts | 191 + .../@types/node/ts4.8/perf_hooks.d.ts | 625 + node_modules/@types/node/ts4.8/process.d.ts | 1482 ++ node_modules/@types/node/ts4.8/punycode.d.ts | 117 + .../@types/node/ts4.8/querystring.d.ts | 131 + node_modules/@types/node/ts4.8/readline.d.ts | 653 + .../@types/node/ts4.8/readline/promises.d.ts | 143 + node_modules/@types/node/ts4.8/repl.d.ts | 424 + node_modules/@types/node/ts4.8/stream.d.ts | 1340 ++ .../@types/node/ts4.8/stream/consumers.d.ts | 12 + .../@types/node/ts4.8/stream/promises.d.ts | 42 + .../@types/node/ts4.8/stream/web.d.ts | 330 + .../@types/node/ts4.8/string_decoder.d.ts | 67 + node_modules/@types/node/ts4.8/test.d.ts | 446 + node_modules/@types/node/ts4.8/timers.d.ts | 94 + .../@types/node/ts4.8/timers/promises.d.ts | 93 + node_modules/@types/node/ts4.8/tls.d.ts | 1028 ++ .../@types/node/ts4.8/trace_events.d.ts | 171 + node_modules/@types/node/ts4.8/tty.d.ts | 206 + node_modules/@types/node/ts4.8/url.d.ts | 897 + node_modules/@types/node/ts4.8/util.d.ts | 1926 ++ node_modules/@types/node/ts4.8/v8.d.ts | 396 + node_modules/@types/node/ts4.8/vm.d.ts | 509 + node_modules/@types/node/ts4.8/wasi.d.ts | 158 + .../@types/node/ts4.8/worker_threads.d.ts | 689 + node_modules/@types/node/ts4.8/zlib.d.ts | 517 + node_modules/@types/node/tty.d.ts | 206 + node_modules/@types/node/url.d.ts | 897 + node_modules/@types/node/util.d.ts | 1926 ++ node_modules/@types/node/v8.d.ts | 396 + node_modules/@types/node/vm.d.ts | 509 + node_modules/@types/node/wasi.d.ts | 158 + node_modules/@types/node/worker_threads.d.ts | 689 + node_modules/@types/node/zlib.d.ts | 517 + node_modules/@types/prettier/LICENSE | 21 + node_modules/@types/prettier/README.md | 16 + node_modules/@types/prettier/doc.d.ts | 222 + node_modules/@types/prettier/index.d.ts | 933 + node_modules/@types/prettier/package.json | 60 + .../@types/prettier/parser-angular.d.ts | 11 + .../@types/prettier/parser-babel.d.ts | 16 + .../@types/prettier/parser-espree.d.ts | 8 + node_modules/@types/prettier/parser-flow.d.ts | 8 + .../@types/prettier/parser-glimmer.d.ts | 8 + .../@types/prettier/parser-graphql.d.ts | 8 + node_modules/@types/prettier/parser-html.d.ts | 11 + .../@types/prettier/parser-markdown.d.ts | 10 + .../@types/prettier/parser-meriyah.d.ts | 8 + .../@types/prettier/parser-postcss.d.ts | 10 + .../@types/prettier/parser-typescript.d.ts | 8 + node_modules/@types/prettier/parser-yaml.d.ts | 8 + node_modules/@types/prettier/standalone.d.ts | 32 + node_modules/@types/stack-utils/LICENSE | 21 + node_modules/@types/stack-utils/README.md | 85 + node_modules/@types/stack-utils/index.d.ts | 65 + node_modules/@types/stack-utils/package.json | 25 + node_modules/@types/yargs-parser/LICENSE | 21 + node_modules/@types/yargs-parser/README.md | 16 + node_modules/@types/yargs-parser/index.d.ts | 118 + node_modules/@types/yargs-parser/package.json | 25 + node_modules/@types/yargs/LICENSE | 21 + node_modules/@types/yargs/README.md | 16 + node_modules/@types/yargs/helpers.d.mts | 1 + node_modules/@types/yargs/helpers.d.ts | 5 + node_modules/@types/yargs/index.d.mts | 43 + node_modules/@types/yargs/index.d.ts | 934 + node_modules/@types/yargs/package.json | 87 + node_modules/@types/yargs/yargs.d.ts | 9 + node_modules/abab/LICENSE.md | 0 node_modules/abab/README.md | 0 node_modules/abab/index.d.ts | 0 node_modules/abab/index.js | 0 node_modules/abab/lib/atob.js | 0 node_modules/abab/lib/btoa.js | 0 node_modules/abab/package.json | 0 node_modules/accepts/HISTORY.md | 0 node_modules/accepts/LICENSE | 0 node_modules/accepts/README.md | 0 node_modules/accepts/index.js | 0 node_modules/accepts/package.json | 0 node_modules/acorn-globals/LICENSE | 0 node_modules/acorn-globals/README.md | 0 node_modules/acorn-globals/index.js | 0 .../node_modules/acorn/CHANGELOG.md | 0 .../acorn-globals/node_modules/acorn/LICENSE | 0 .../node_modules/acorn/README.md | 0 .../node_modules/acorn/dist/acorn.d.ts | 0 .../node_modules/acorn/dist/acorn.js | 0 .../node_modules/acorn/dist/acorn.js.map | 0 .../node_modules/acorn/dist/acorn.mjs | 0 .../node_modules/acorn/dist/acorn.mjs.d.ts | 0 .../node_modules/acorn/dist/acorn.mjs.map | 0 .../node_modules/acorn/dist/bin.js | 0 .../node_modules/acorn/package.json | 0 node_modules/acorn-globals/package.json | 0 node_modules/acorn-walk/CHANGELOG.md | 0 node_modules/acorn-walk/LICENSE | 0 node_modules/acorn-walk/README.md | 0 node_modules/acorn-walk/dist/walk.d.ts | 0 node_modules/acorn-walk/dist/walk.js | 0 node_modules/acorn-walk/dist/walk.js.map | 0 node_modules/acorn-walk/dist/walk.mjs | 0 node_modules/acorn-walk/dist/walk.mjs.map | 0 node_modules/acorn-walk/package.json | 0 node_modules/acorn/CHANGELOG.md | 0 node_modules/acorn/LICENSE | 0 node_modules/acorn/README.md | 0 node_modules/acorn/dist/acorn.d.ts | 0 node_modules/acorn/dist/acorn.js | 0 node_modules/acorn/dist/acorn.mjs | 0 node_modules/acorn/dist/acorn.mjs.d.ts | 0 node_modules/acorn/dist/bin.js | 0 node_modules/acorn/package.json | 0 node_modules/agent-base/README.md | 0 node_modules/agent-base/dist/src/index.d.ts | 0 node_modules/agent-base/dist/src/index.js | 0 node_modules/agent-base/dist/src/index.js.map | 0 .../agent-base/dist/src/promisify.d.ts | 0 node_modules/agent-base/dist/src/promisify.js | 0 .../agent-base/dist/src/promisify.js.map | 0 .../agent-base/node_modules/debug/LICENSE | 0 .../agent-base/node_modules/debug/README.md | 0 .../node_modules/debug/package.json | 0 .../node_modules/debug/src/browser.js | 0 .../node_modules/debug/src/common.js | 0 .../node_modules/debug/src/index.js | 0 .../agent-base/node_modules/debug/src/node.js | 0 .../agent-base/node_modules/ms/index.js | 0 .../agent-base/node_modules/ms/license.md | 0 .../agent-base/node_modules/ms/package.json | 0 .../agent-base/node_modules/ms/readme.md | 0 node_modules/agent-base/package.json | 0 node_modules/agent-base/src/index.ts | 0 node_modules/agent-base/src/promisify.ts | 0 node_modules/ansi-escapes/index.d.ts | 248 + node_modules/ansi-escapes/index.js | 157 + node_modules/ansi-escapes/license | 9 + node_modules/ansi-escapes/package.json | 57 + node_modules/ansi-escapes/readme.md | 245 + node_modules/ansi-regex/index.d.ts | 37 + node_modules/ansi-regex/index.js | 10 + node_modules/ansi-regex/license | 9 + node_modules/ansi-regex/package.json | 55 + node_modules/ansi-regex/readme.md | 78 + node_modules/ansi-styles/index.d.ts | 345 + node_modules/ansi-styles/index.js | 163 + node_modules/ansi-styles/license | 9 + node_modules/ansi-styles/package.json | 56 + node_modules/ansi-styles/readme.md | 152 + node_modules/anymatch/LICENSE | 15 + node_modules/anymatch/README.md | 87 + node_modules/anymatch/index.d.ts | 20 + node_modules/anymatch/index.js | 104 + node_modules/anymatch/package.json | 48 + node_modules/argparse/CHANGELOG.md | 185 + node_modules/argparse/LICENSE | 21 + node_modules/argparse/README.md | 257 + node_modules/argparse/index.js | 3 + node_modules/argparse/lib/action.js | 146 + node_modules/argparse/lib/action/append.js | 53 + .../argparse/lib/action/append/constant.js | 47 + node_modules/argparse/lib/action/count.js | 40 + node_modules/argparse/lib/action/help.js | 47 + node_modules/argparse/lib/action/store.js | 50 + .../argparse/lib/action/store/constant.js | 43 + .../argparse/lib/action/store/false.js | 27 + .../argparse/lib/action/store/true.js | 26 + .../argparse/lib/action/subparsers.js | 149 + node_modules/argparse/lib/action/version.js | 47 + node_modules/argparse/lib/action_container.js | 482 + node_modules/argparse/lib/argparse.js | 14 + node_modules/argparse/lib/argument/error.js | 50 + .../argparse/lib/argument/exclusive.js | 54 + node_modules/argparse/lib/argument/group.js | 75 + node_modules/argparse/lib/argument_parser.js | 1161 ++ node_modules/argparse/lib/const.js | 21 + .../argparse/lib/help/added_formatters.js | 87 + node_modules/argparse/lib/help/formatter.js | 795 + node_modules/argparse/lib/namespace.js | 76 + node_modules/argparse/lib/utils.js | 57 + node_modules/argparse/package.json | 34 + node_modules/array-flatten/LICENSE | 0 node_modules/array-flatten/README.md | 0 node_modules/array-flatten/array-flatten.js | 0 node_modules/array-flatten/package.json | 0 node_modules/asynckit/LICENSE | 0 node_modules/asynckit/README.md | 0 node_modules/asynckit/bench.js | 0 node_modules/asynckit/index.js | 0 node_modules/asynckit/lib/abort.js | 0 node_modules/asynckit/lib/async.js | 0 node_modules/asynckit/lib/defer.js | 0 node_modules/asynckit/lib/iterate.js | 0 .../asynckit/lib/readable_asynckit.js | 0 .../asynckit/lib/readable_parallel.js | 0 node_modules/asynckit/lib/readable_serial.js | 0 .../asynckit/lib/readable_serial_ordered.js | 0 node_modules/asynckit/lib/state.js | 0 node_modules/asynckit/lib/streamify.js | 0 node_modules/asynckit/lib/terminator.js | 0 node_modules/asynckit/package.json | 0 node_modules/asynckit/parallel.js | 0 node_modules/asynckit/serial.js | 0 node_modules/asynckit/serialOrdered.js | 0 node_modules/asynckit/stream.js | 0 node_modules/babel-jest/LICENSE | 21 + node_modules/babel-jest/README.md | 25 + node_modules/babel-jest/build/index.d.ts | 24 + node_modules/babel-jest/build/index.js | 323 + .../babel-jest/build/loadBabelConfig.js | 24 + node_modules/babel-jest/package.json | 44 + .../babel-plugin-istanbul/CHANGELOG.md | 320 + node_modules/babel-plugin-istanbul/LICENSE | 27 + node_modules/babel-plugin-istanbul/README.md | 135 + .../babel-plugin-istanbul/lib/index.js | 170 + .../lib/load-nyc-config-sync.js | 20 + .../babel-plugin-istanbul/package.json | 71 + node_modules/babel-plugin-jest-hoist/LICENSE | 21 + .../babel-plugin-jest-hoist/README.md | 33 + .../babel-plugin-jest-hoist/build/index.d.ts | 16 + .../babel-plugin-jest-hoist/build/index.js | 368 + .../babel-plugin-jest-hoist/package.json | 42 + .../babel-preset-current-node-syntax/LICENSE | 22 + .../README.md | 30 + .../package.json | 41 + .../scripts/check-yarn-bug.sh | 5 + .../src/index.js | 57 + node_modules/babel-preset-jest/LICENSE | 21 + node_modules/babel-preset-jest/README.md | 33 + node_modules/babel-preset-jest/index.js | 14 + node_modules/babel-preset-jest/package.json | 29 + .../balanced-match/.github/FUNDING.yml | 2 + node_modules/balanced-match/LICENSE.md | 21 + node_modules/balanced-match/README.md | 97 + node_modules/balanced-match/index.js | 62 + node_modules/balanced-match/package.json | 48 + node_modules/body-parser/HISTORY.md | 0 node_modules/body-parser/LICENSE | 0 node_modules/body-parser/README.md | 0 node_modules/body-parser/SECURITY.md | 0 node_modules/body-parser/index.js | 0 node_modules/body-parser/lib/read.js | 0 node_modules/body-parser/lib/types/json.js | 0 node_modules/body-parser/lib/types/raw.js | 0 node_modules/body-parser/lib/types/text.js | 0 .../body-parser/lib/types/urlencoded.js | 0 node_modules/body-parser/package.json | 0 node_modules/brace-expansion/LICENSE | 21 + node_modules/brace-expansion/README.md | 129 + node_modules/brace-expansion/index.js | 201 + node_modules/brace-expansion/package.json | 47 + node_modules/braces/CHANGELOG.md | 184 + node_modules/braces/LICENSE | 21 + node_modules/braces/README.md | 593 + node_modules/braces/index.js | 170 + node_modules/braces/lib/compile.js | 57 + node_modules/braces/lib/constants.js | 57 + node_modules/braces/lib/expand.js | 113 + node_modules/braces/lib/parse.js | 333 + node_modules/braces/lib/stringify.js | 32 + node_modules/braces/lib/utils.js | 112 + node_modules/braces/package.json | 77 + node_modules/browser-process-hrtime/LICENSE | 0 node_modules/browser-process-hrtime/README.md | 0 .../browser-process-hrtime/index.d.ts | 0 node_modules/browser-process-hrtime/index.js | 0 .../browser-process-hrtime/package.json | 0 node_modules/browserslist/LICENSE | 20 + node_modules/browserslist/README.md | 75 + node_modules/browserslist/browser.js | 50 + node_modules/browserslist/cli.js | 151 + node_modules/browserslist/error.d.ts | 7 + node_modules/browserslist/error.js | 12 + node_modules/browserslist/index.d.ts | 198 + node_modules/browserslist/index.js | 1189 ++ node_modules/browserslist/node.js | 407 + node_modules/browserslist/package.json | 40 + node_modules/browserslist/parse.js | 78 + node_modules/bser/README.md | 81 + node_modules/bser/index.js | 586 + node_modules/bser/package.json | 33 + node_modules/buffer-from/LICENSE | 21 + node_modules/buffer-from/index.js | 72 + node_modules/buffer-from/package.json | 19 + node_modules/buffer-from/readme.md | 69 + node_modules/bytes/History.md | 0 node_modules/bytes/LICENSE | 0 node_modules/bytes/Readme.md | 0 node_modules/bytes/index.js | 0 node_modules/bytes/package.json | 0 node_modules/call-bind/.eslintignore | 0 node_modules/call-bind/.eslintrc | 0 node_modules/call-bind/.github/FUNDING.yml | 0 node_modules/call-bind/.nycrc | 0 node_modules/call-bind/CHANGELOG.md | 0 node_modules/call-bind/LICENSE | 0 node_modules/call-bind/README.md | 0 node_modules/call-bind/callBound.js | 0 node_modules/call-bind/index.js | 0 node_modules/call-bind/package.json | 0 node_modules/call-bind/test/callBound.js | 0 node_modules/call-bind/test/index.js | 0 node_modules/callsites/index.d.ts | 96 + node_modules/callsites/index.js | 13 + node_modules/callsites/license | 9 + node_modules/callsites/package.json | 39 + node_modules/callsites/readme.md | 48 + node_modules/camelcase/index.d.ts | 63 + node_modules/camelcase/index.js | 76 + node_modules/camelcase/license | 9 + node_modules/camelcase/package.json | 43 + node_modules/camelcase/readme.md | 99 + node_modules/caniuse-lite/LICENSE | 395 + node_modules/caniuse-lite/README.md | 92 + node_modules/caniuse-lite/data/agents.js | 1 + .../caniuse-lite/data/browserVersions.js | 1 + node_modules/caniuse-lite/data/browsers.js | 1 + node_modules/caniuse-lite/data/features.js | 1 + .../caniuse-lite/data/features/aac.js | 1 + .../data/features/abortcontroller.js | 1 + .../caniuse-lite/data/features/ac3-ec3.js | 1 + .../data/features/accelerometer.js | 1 + .../data/features/addeventlistener.js | 1 + .../data/features/alternate-stylesheet.js | 1 + .../data/features/ambient-light.js | 1 + .../caniuse-lite/data/features/apng.js | 1 + .../data/features/array-find-index.js | 1 + .../caniuse-lite/data/features/array-find.js | 1 + .../caniuse-lite/data/features/array-flat.js | 1 + .../data/features/array-includes.js | 1 + .../data/features/arrow-functions.js | 1 + .../caniuse-lite/data/features/asmjs.js | 1 + .../data/features/async-clipboard.js | 1 + .../data/features/async-functions.js | 1 + .../caniuse-lite/data/features/atob-btoa.js | 1 + .../caniuse-lite/data/features/audio-api.js | 1 + .../caniuse-lite/data/features/audio.js | 1 + .../caniuse-lite/data/features/audiotracks.js | 1 + .../caniuse-lite/data/features/autofocus.js | 1 + .../caniuse-lite/data/features/auxclick.js | 1 + .../caniuse-lite/data/features/av1.js | 1 + .../caniuse-lite/data/features/avif.js | 1 + .../data/features/background-attachment.js | 1 + .../data/features/background-clip-text.js | 1 + .../data/features/background-img-opts.js | 1 + .../data/features/background-position-x-y.js | 1 + .../features/background-repeat-round-space.js | 1 + .../data/features/background-sync.js | 1 + .../data/features/battery-status.js | 1 + .../caniuse-lite/data/features/beacon.js | 1 + .../data/features/beforeafterprint.js | 1 + .../caniuse-lite/data/features/bigint.js | 1 + .../caniuse-lite/data/features/blobbuilder.js | 1 + .../caniuse-lite/data/features/bloburls.js | 1 + .../data/features/border-image.js | 1 + .../data/features/border-radius.js | 1 + .../data/features/broadcastchannel.js | 1 + .../caniuse-lite/data/features/brotli.js | 1 + .../caniuse-lite/data/features/calc.js | 1 + .../data/features/canvas-blending.js | 1 + .../caniuse-lite/data/features/canvas-text.js | 1 + .../caniuse-lite/data/features/canvas.js | 1 + .../caniuse-lite/data/features/ch-unit.js | 1 + .../data/features/chacha20-poly1305.js | 1 + .../data/features/channel-messaging.js | 1 + .../data/features/childnode-remove.js | 1 + .../caniuse-lite/data/features/classlist.js | 1 + .../client-hints-dpr-width-viewport.js | 1 + .../caniuse-lite/data/features/clipboard.js | 1 + .../caniuse-lite/data/features/colr-v1.js | 1 + .../caniuse-lite/data/features/colr.js | 1 + .../data/features/comparedocumentposition.js | 1 + .../data/features/console-basic.js | 1 + .../data/features/console-time.js | 1 + .../caniuse-lite/data/features/const.js | 1 + .../data/features/constraint-validation.js | 1 + .../data/features/contenteditable.js | 1 + .../data/features/contentsecuritypolicy.js | 1 + .../data/features/contentsecuritypolicy2.js | 1 + .../data/features/cookie-store-api.js | 1 + .../caniuse-lite/data/features/cors.js | 1 + .../data/features/createimagebitmap.js | 1 + .../data/features/credential-management.js | 1 + .../data/features/cryptography.js | 1 + .../caniuse-lite/data/features/css-all.js | 1 + .../data/features/css-animation.js | 1 + .../data/features/css-any-link.js | 1 + .../data/features/css-appearance.js | 1 + .../data/features/css-at-counter-style.js | 1 + .../data/features/css-autofill.js | 1 + .../data/features/css-backdrop-filter.js | 1 + .../data/features/css-background-offsets.js | 1 + .../data/features/css-backgroundblendmode.js | 1 + .../data/features/css-boxdecorationbreak.js | 1 + .../data/features/css-boxshadow.js | 1 + .../caniuse-lite/data/features/css-canvas.js | 1 + .../data/features/css-caret-color.js | 1 + .../data/features/css-cascade-layers.js | 1 + .../data/features/css-case-insensitive.js | 1 + .../data/features/css-clip-path.js | 1 + .../data/features/css-color-adjust.js | 1 + .../data/features/css-color-function.js | 1 + .../data/features/css-conic-gradients.js | 1 + .../data/features/css-container-queries.js | 1 + .../features/css-container-query-units.js | 1 + .../data/features/css-containment.js | 1 + .../data/features/css-content-visibility.js | 1 + .../data/features/css-counters.js | 1 + .../data/features/css-crisp-edges.js | 1 + .../data/features/css-cross-fade.js | 1 + .../data/features/css-default-pseudo.js | 1 + .../data/features/css-descendant-gtgt.js | 1 + .../data/features/css-deviceadaptation.js | 1 + .../data/features/css-dir-pseudo.js | 1 + .../data/features/css-display-contents.js | 1 + .../data/features/css-element-function.js | 1 + .../data/features/css-env-function.js | 1 + .../data/features/css-exclusions.js | 1 + .../data/features/css-featurequeries.js | 1 + .../data/features/css-file-selector-button.js | 1 + .../data/features/css-filter-function.js | 1 + .../caniuse-lite/data/features/css-filters.js | 1 + .../data/features/css-first-letter.js | 1 + .../data/features/css-first-line.js | 1 + .../caniuse-lite/data/features/css-fixed.js | 1 + .../data/features/css-focus-visible.js | 1 + .../data/features/css-focus-within.js | 1 + .../data/features/css-font-palette.js | 1 + .../features/css-font-rendering-controls.js | 1 + .../data/features/css-font-stretch.js | 1 + .../data/features/css-gencontent.js | 1 + .../data/features/css-gradients.js | 1 + .../data/features/css-grid-animation.js | 1 + .../caniuse-lite/data/features/css-grid.js | 1 + .../data/features/css-hanging-punctuation.js | 1 + .../caniuse-lite/data/features/css-has.js | 1 + .../caniuse-lite/data/features/css-hyphens.js | 1 + .../data/features/css-image-orientation.js | 1 + .../data/features/css-image-set.js | 1 + .../data/features/css-in-out-of-range.js | 1 + .../data/features/css-indeterminate-pseudo.js | 1 + .../data/features/css-initial-letter.js | 1 + .../data/features/css-initial-value.js | 1 + .../caniuse-lite/data/features/css-lch-lab.js | 1 + .../data/features/css-letter-spacing.js | 1 + .../data/features/css-line-clamp.js | 1 + .../data/features/css-logical-props.js | 1 + .../data/features/css-marker-pseudo.js | 1 + .../caniuse-lite/data/features/css-masks.js | 1 + .../data/features/css-matches-pseudo.js | 1 + .../data/features/css-math-functions.js | 1 + .../data/features/css-media-interaction.js | 1 + .../data/features/css-media-range-syntax.js | 1 + .../data/features/css-media-resolution.js | 1 + .../data/features/css-media-scripting.js | 1 + .../data/features/css-mediaqueries.js | 1 + .../data/features/css-mixblendmode.js | 1 + .../data/features/css-motion-paths.js | 1 + .../data/features/css-namespaces.js | 1 + .../caniuse-lite/data/features/css-nesting.js | 1 + .../data/features/css-not-sel-list.js | 1 + .../data/features/css-nth-child-of.js | 1 + .../caniuse-lite/data/features/css-opacity.js | 1 + .../data/features/css-optional-pseudo.js | 1 + .../data/features/css-overflow-anchor.js | 1 + .../data/features/css-overflow-overlay.js | 1 + .../data/features/css-overflow.js | 1 + .../data/features/css-overscroll-behavior.js | 1 + .../data/features/css-page-break.js | 1 + .../data/features/css-paged-media.js | 1 + .../data/features/css-paint-api.js | 1 + .../data/features/css-placeholder-shown.js | 1 + .../data/features/css-placeholder.js | 1 + .../data/features/css-print-color-adjust.js | 1 + .../data/features/css-read-only-write.js | 1 + .../data/features/css-rebeccapurple.js | 1 + .../data/features/css-reflections.js | 1 + .../caniuse-lite/data/features/css-regions.js | 1 + .../data/features/css-repeating-gradients.js | 1 + .../caniuse-lite/data/features/css-resize.js | 1 + .../data/features/css-revert-value.js | 1 + .../data/features/css-rrggbbaa.js | 1 + .../data/features/css-scroll-behavior.js | 1 + .../data/features/css-scroll-timeline.js | 1 + .../data/features/css-scrollbar.js | 1 + .../caniuse-lite/data/features/css-sel2.js | 1 + .../caniuse-lite/data/features/css-sel3.js | 1 + .../data/features/css-selection.js | 1 + .../caniuse-lite/data/features/css-shapes.js | 1 + .../data/features/css-snappoints.js | 1 + .../caniuse-lite/data/features/css-sticky.js | 1 + .../caniuse-lite/data/features/css-subgrid.js | 1 + .../data/features/css-supports-api.js | 1 + .../caniuse-lite/data/features/css-table.js | 1 + .../data/features/css-text-align-last.js | 1 + .../data/features/css-text-indent.js | 1 + .../data/features/css-text-justify.js | 1 + .../data/features/css-text-orientation.js | 1 + .../data/features/css-text-spacing.js | 1 + .../data/features/css-textshadow.js | 1 + .../data/features/css-touch-action.js | 1 + .../data/features/css-transitions.js | 1 + .../data/features/css-unicode-bidi.js | 1 + .../data/features/css-unset-value.js | 1 + .../data/features/css-variables.js | 1 + .../data/features/css-when-else.js | 1 + .../data/features/css-widows-orphans.js | 1 + .../data/features/css-width-stretch.js | 1 + .../data/features/css-writing-mode.js | 1 + .../caniuse-lite/data/features/css-zoom.js | 1 + .../caniuse-lite/data/features/css3-attr.js | 1 + .../data/features/css3-boxsizing.js | 1 + .../caniuse-lite/data/features/css3-colors.js | 1 + .../data/features/css3-cursors-grab.js | 1 + .../data/features/css3-cursors-newer.js | 1 + .../data/features/css3-cursors.js | 1 + .../data/features/css3-tabsize.js | 1 + .../data/features/currentcolor.js | 1 + .../data/features/custom-elements.js | 1 + .../data/features/custom-elementsv1.js | 1 + .../caniuse-lite/data/features/customevent.js | 1 + .../caniuse-lite/data/features/datalist.js | 1 + .../caniuse-lite/data/features/dataset.js | 1 + .../caniuse-lite/data/features/datauri.js | 1 + .../data/features/date-tolocaledatestring.js | 1 + .../data/features/declarative-shadow-dom.js | 1 + .../caniuse-lite/data/features/decorators.js | 1 + .../caniuse-lite/data/features/details.js | 1 + .../data/features/deviceorientation.js | 1 + .../data/features/devicepixelratio.js | 1 + .../caniuse-lite/data/features/dialog.js | 1 + .../data/features/dispatchevent.js | 1 + .../caniuse-lite/data/features/dnssec.js | 1 + .../data/features/do-not-track.js | 1 + .../data/features/document-currentscript.js | 1 + .../data/features/document-evaluate-xpath.js | 1 + .../data/features/document-execcommand.js | 1 + .../data/features/document-policy.js | 1 + .../features/document-scrollingelement.js | 1 + .../data/features/documenthead.js | 1 + .../data/features/dom-manip-convenience.js | 1 + .../caniuse-lite/data/features/dom-range.js | 1 + .../data/features/domcontentloaded.js | 1 + .../caniuse-lite/data/features/dommatrix.js | 1 + .../caniuse-lite/data/features/download.js | 1 + .../caniuse-lite/data/features/dragndrop.js | 1 + .../data/features/element-closest.js | 1 + .../data/features/element-from-point.js | 1 + .../data/features/element-scroll-methods.js | 1 + .../caniuse-lite/data/features/eme.js | 1 + .../caniuse-lite/data/features/eot.js | 1 + .../caniuse-lite/data/features/es5.js | 1 + .../caniuse-lite/data/features/es6-class.js | 1 + .../data/features/es6-generators.js | 1 + .../features/es6-module-dynamic-import.js | 1 + .../caniuse-lite/data/features/es6-module.js | 1 + .../caniuse-lite/data/features/es6-number.js | 1 + .../data/features/es6-string-includes.js | 1 + .../caniuse-lite/data/features/es6.js | 1 + .../caniuse-lite/data/features/eventsource.js | 1 + .../data/features/extended-system-fonts.js | 1 + .../data/features/feature-policy.js | 1 + .../caniuse-lite/data/features/fetch.js | 1 + .../data/features/fieldset-disabled.js | 1 + .../caniuse-lite/data/features/fileapi.js | 1 + .../caniuse-lite/data/features/filereader.js | 1 + .../data/features/filereadersync.js | 1 + .../caniuse-lite/data/features/filesystem.js | 1 + .../caniuse-lite/data/features/flac.js | 1 + .../caniuse-lite/data/features/flexbox-gap.js | 1 + .../caniuse-lite/data/features/flexbox.js | 1 + .../caniuse-lite/data/features/flow-root.js | 1 + .../data/features/focusin-focusout-events.js | 1 + .../data/features/font-family-system-ui.js | 1 + .../data/features/font-feature.js | 1 + .../data/features/font-kerning.js | 1 + .../data/features/font-loading.js | 1 + .../data/features/font-size-adjust.js | 1 + .../caniuse-lite/data/features/font-smooth.js | 1 + .../data/features/font-unicode-range.js | 1 + .../data/features/font-variant-alternates.js | 1 + .../data/features/font-variant-numeric.js | 1 + .../caniuse-lite/data/features/fontface.js | 1 + .../data/features/form-attribute.js | 1 + .../data/features/form-submit-attributes.js | 1 + .../data/features/form-validation.js | 1 + .../caniuse-lite/data/features/forms.js | 1 + .../caniuse-lite/data/features/fullscreen.js | 1 + .../caniuse-lite/data/features/gamepad.js | 1 + .../caniuse-lite/data/features/geolocation.js | 1 + .../data/features/getboundingclientrect.js | 1 + .../data/features/getcomputedstyle.js | 1 + .../data/features/getelementsbyclassname.js | 1 + .../data/features/getrandomvalues.js | 1 + .../caniuse-lite/data/features/gyroscope.js | 1 + .../data/features/hardwareconcurrency.js | 1 + .../caniuse-lite/data/features/hashchange.js | 1 + .../caniuse-lite/data/features/heif.js | 1 + .../caniuse-lite/data/features/hevc.js | 1 + .../caniuse-lite/data/features/hidden.js | 1 + .../data/features/high-resolution-time.js | 1 + .../caniuse-lite/data/features/history.js | 1 + .../data/features/html-media-capture.js | 1 + .../data/features/html5semantic.js | 1 + .../data/features/http-live-streaming.js | 1 + .../caniuse-lite/data/features/http2.js | 1 + .../caniuse-lite/data/features/http3.js | 1 + .../data/features/iframe-sandbox.js | 1 + .../data/features/iframe-seamless.js | 1 + .../data/features/iframe-srcdoc.js | 1 + .../data/features/imagecapture.js | 1 + .../caniuse-lite/data/features/ime.js | 1 + .../img-naturalwidth-naturalheight.js | 1 + .../caniuse-lite/data/features/import-maps.js | 1 + .../caniuse-lite/data/features/imports.js | 1 + .../data/features/indeterminate-checkbox.js | 1 + .../caniuse-lite/data/features/indexeddb.js | 1 + .../caniuse-lite/data/features/indexeddb2.js | 1 + .../data/features/inline-block.js | 1 + .../caniuse-lite/data/features/innertext.js | 1 + .../data/features/input-autocomplete-onoff.js | 1 + .../caniuse-lite/data/features/input-color.js | 1 + .../data/features/input-datetime.js | 1 + .../data/features/input-email-tel-url.js | 1 + .../caniuse-lite/data/features/input-event.js | 1 + .../data/features/input-file-accept.js | 1 + .../data/features/input-file-directory.js | 1 + .../data/features/input-file-multiple.js | 1 + .../data/features/input-inputmode.js | 1 + .../data/features/input-minlength.js | 1 + .../data/features/input-number.js | 1 + .../data/features/input-pattern.js | 1 + .../data/features/input-placeholder.js | 1 + .../caniuse-lite/data/features/input-range.js | 1 + .../data/features/input-search.js | 1 + .../data/features/input-selection.js | 1 + .../data/features/insert-adjacent.js | 1 + .../data/features/insertadjacenthtml.js | 1 + .../data/features/internationalization.js | 1 + .../data/features/intersectionobserver-v2.js | 1 + .../data/features/intersectionobserver.js | 1 + .../data/features/intl-pluralrules.js | 1 + .../data/features/intrinsic-width.js | 1 + .../caniuse-lite/data/features/jpeg2000.js | 1 + .../caniuse-lite/data/features/jpegxl.js | 1 + .../caniuse-lite/data/features/jpegxr.js | 1 + .../data/features/js-regexp-lookbehind.js | 1 + .../caniuse-lite/data/features/json.js | 1 + .../features/justify-content-space-evenly.js | 1 + .../data/features/kerning-pairs-ligatures.js | 1 + .../data/features/keyboardevent-charcode.js | 1 + .../data/features/keyboardevent-code.js | 1 + .../keyboardevent-getmodifierstate.js | 1 + .../data/features/keyboardevent-key.js | 1 + .../data/features/keyboardevent-location.js | 1 + .../data/features/keyboardevent-which.js | 1 + .../caniuse-lite/data/features/lazyload.js | 1 + .../caniuse-lite/data/features/let.js | 1 + .../data/features/link-icon-png.js | 1 + .../data/features/link-icon-svg.js | 1 + .../data/features/link-rel-dns-prefetch.js | 1 + .../data/features/link-rel-modulepreload.js | 1 + .../data/features/link-rel-preconnect.js | 1 + .../data/features/link-rel-prefetch.js | 1 + .../data/features/link-rel-preload.js | 1 + .../data/features/link-rel-prerender.js | 1 + .../data/features/loading-lazy-attr.js | 1 + .../data/features/localecompare.js | 1 + .../data/features/magnetometer.js | 1 + .../data/features/matchesselector.js | 1 + .../caniuse-lite/data/features/matchmedia.js | 1 + .../caniuse-lite/data/features/mathml.js | 1 + .../caniuse-lite/data/features/maxlength.js | 1 + .../mdn-css-unicode-bidi-isolate-override.js | 1 + .../features/mdn-css-unicode-bidi-isolate.js | 1 + .../mdn-css-unicode-bidi-plaintext.js | 1 + .../features/mdn-text-decoration-color.js | 1 + .../data/features/mdn-text-decoration-line.js | 1 + .../features/mdn-text-decoration-shorthand.js | 1 + .../features/mdn-text-decoration-style.js | 1 + .../data/features/media-fragments.js | 1 + .../data/features/mediacapture-fromelement.js | 1 + .../data/features/mediarecorder.js | 1 + .../caniuse-lite/data/features/mediasource.js | 1 + .../caniuse-lite/data/features/menu.js | 1 + .../data/features/meta-theme-color.js | 1 + .../caniuse-lite/data/features/meter.js | 1 + .../caniuse-lite/data/features/midi.js | 1 + .../caniuse-lite/data/features/minmaxwh.js | 1 + .../caniuse-lite/data/features/mp3.js | 1 + .../caniuse-lite/data/features/mpeg-dash.js | 1 + .../caniuse-lite/data/features/mpeg4.js | 1 + .../data/features/multibackgrounds.js | 1 + .../caniuse-lite/data/features/multicolumn.js | 1 + .../data/features/mutation-events.js | 1 + .../data/features/mutationobserver.js | 1 + .../data/features/namevalue-storage.js | 1 + .../data/features/native-filesystem-api.js | 1 + .../caniuse-lite/data/features/nav-timing.js | 1 + .../caniuse-lite/data/features/netinfo.js | 1 + .../data/features/notifications.js | 1 + .../data/features/object-entries.js | 1 + .../caniuse-lite/data/features/object-fit.js | 1 + .../data/features/object-observe.js | 1 + .../data/features/object-values.js | 1 + .../caniuse-lite/data/features/objectrtc.js | 1 + .../data/features/offline-apps.js | 1 + .../data/features/offscreencanvas.js | 1 + .../caniuse-lite/data/features/ogg-vorbis.js | 1 + .../caniuse-lite/data/features/ogv.js | 1 + .../caniuse-lite/data/features/ol-reversed.js | 1 + .../data/features/once-event-listener.js | 1 + .../data/features/online-status.js | 1 + .../caniuse-lite/data/features/opus.js | 1 + .../data/features/orientation-sensor.js | 1 + .../caniuse-lite/data/features/outline.js | 1 + .../data/features/pad-start-end.js | 1 + .../data/features/page-transition-events.js | 1 + .../data/features/pagevisibility.js | 1 + .../data/features/passive-event-listener.js | 1 + .../data/features/passwordrules.js | 1 + .../caniuse-lite/data/features/path2d.js | 1 + .../data/features/payment-request.js | 1 + .../caniuse-lite/data/features/pdf-viewer.js | 1 + .../data/features/permissions-api.js | 1 + .../data/features/permissions-policy.js | 1 + .../data/features/picture-in-picture.js | 1 + .../caniuse-lite/data/features/picture.js | 1 + .../caniuse-lite/data/features/ping.js | 1 + .../caniuse-lite/data/features/png-alpha.js | 1 + .../data/features/pointer-events.js | 1 + .../caniuse-lite/data/features/pointer.js | 1 + .../caniuse-lite/data/features/pointerlock.js | 1 + .../caniuse-lite/data/features/portals.js | 1 + .../data/features/prefers-color-scheme.js | 1 + .../data/features/prefers-reduced-motion.js | 1 + .../caniuse-lite/data/features/progress.js | 1 + .../data/features/promise-finally.js | 1 + .../caniuse-lite/data/features/promises.js | 1 + .../caniuse-lite/data/features/proximity.js | 1 + .../caniuse-lite/data/features/proxy.js | 1 + .../data/features/publickeypinning.js | 1 + .../caniuse-lite/data/features/push-api.js | 1 + .../data/features/queryselector.js | 1 + .../data/features/readonly-attr.js | 1 + .../data/features/referrer-policy.js | 1 + .../data/features/registerprotocolhandler.js | 1 + .../data/features/rel-noopener.js | 1 + .../data/features/rel-noreferrer.js | 1 + .../caniuse-lite/data/features/rellist.js | 1 + .../caniuse-lite/data/features/rem.js | 1 + .../data/features/requestanimationframe.js | 1 + .../data/features/requestidlecallback.js | 1 + .../data/features/resizeobserver.js | 1 + .../data/features/resource-timing.js | 1 + .../data/features/rest-parameters.js | 1 + .../data/features/rtcpeerconnection.js | 1 + .../caniuse-lite/data/features/ruby.js | 1 + .../caniuse-lite/data/features/run-in.js | 1 + .../features/same-site-cookie-attribute.js | 1 + .../data/features/screen-orientation.js | 1 + .../data/features/script-async.js | 1 + .../data/features/script-defer.js | 1 + .../data/features/scrollintoview.js | 1 + .../data/features/scrollintoviewifneeded.js | 1 + .../caniuse-lite/data/features/sdch.js | 1 + .../data/features/selection-api.js | 1 + .../data/features/server-timing.js | 1 + .../data/features/serviceworkers.js | 1 + .../data/features/setimmediate.js | 1 + .../caniuse-lite/data/features/shadowdom.js | 1 + .../caniuse-lite/data/features/shadowdomv1.js | 1 + .../data/features/sharedarraybuffer.js | 1 + .../data/features/sharedworkers.js | 1 + .../caniuse-lite/data/features/sni.js | 1 + .../caniuse-lite/data/features/spdy.js | 1 + .../data/features/speech-recognition.js | 1 + .../data/features/speech-synthesis.js | 1 + .../data/features/spellcheck-attribute.js | 1 + .../caniuse-lite/data/features/sql-storage.js | 1 + .../caniuse-lite/data/features/srcset.js | 1 + .../caniuse-lite/data/features/stream.js | 1 + .../caniuse-lite/data/features/streams.js | 1 + .../data/features/stricttransportsecurity.js | 1 + .../data/features/style-scoped.js | 1 + .../data/features/subresource-bundling.js | 1 + .../data/features/subresource-integrity.js | 1 + .../caniuse-lite/data/features/svg-css.js | 1 + .../caniuse-lite/data/features/svg-filters.js | 1 + .../caniuse-lite/data/features/svg-fonts.js | 1 + .../data/features/svg-fragment.js | 1 + .../caniuse-lite/data/features/svg-html.js | 1 + .../caniuse-lite/data/features/svg-html5.js | 1 + .../caniuse-lite/data/features/svg-img.js | 1 + .../caniuse-lite/data/features/svg-smil.js | 1 + .../caniuse-lite/data/features/svg.js | 1 + .../caniuse-lite/data/features/sxg.js | 1 + .../data/features/tabindex-attr.js | 1 + .../data/features/template-literals.js | 1 + .../caniuse-lite/data/features/template.js | 1 + .../caniuse-lite/data/features/temporal.js | 1 + .../caniuse-lite/data/features/testfeat.js | 1 + .../data/features/text-decoration.js | 1 + .../data/features/text-emphasis.js | 1 + .../data/features/text-overflow.js | 1 + .../data/features/text-size-adjust.js | 1 + .../caniuse-lite/data/features/text-stroke.js | 1 + .../caniuse-lite/data/features/textcontent.js | 1 + .../caniuse-lite/data/features/textencoder.js | 1 + .../caniuse-lite/data/features/tls1-1.js | 1 + .../caniuse-lite/data/features/tls1-2.js | 1 + .../caniuse-lite/data/features/tls1-3.js | 1 + .../caniuse-lite/data/features/touch.js | 1 + .../data/features/transforms2d.js | 1 + .../data/features/transforms3d.js | 1 + .../data/features/trusted-types.js | 1 + .../caniuse-lite/data/features/ttf.js | 1 + .../caniuse-lite/data/features/typedarrays.js | 1 + .../caniuse-lite/data/features/u2f.js | 1 + .../data/features/unhandledrejection.js | 1 + .../data/features/upgradeinsecurerequests.js | 1 + .../features/url-scroll-to-text-fragment.js | 1 + .../caniuse-lite/data/features/url.js | 1 + .../data/features/urlsearchparams.js | 1 + .../caniuse-lite/data/features/use-strict.js | 1 + .../data/features/user-select-none.js | 1 + .../caniuse-lite/data/features/user-timing.js | 1 + .../data/features/variable-fonts.js | 1 + .../data/features/vector-effect.js | 1 + .../caniuse-lite/data/features/vibration.js | 1 + .../caniuse-lite/data/features/video.js | 1 + .../caniuse-lite/data/features/videotracks.js | 1 + .../data/features/viewport-unit-variants.js | 1 + .../data/features/viewport-units.js | 1 + .../caniuse-lite/data/features/wai-aria.js | 1 + .../caniuse-lite/data/features/wake-lock.js | 1 + .../caniuse-lite/data/features/wasm.js | 1 + .../caniuse-lite/data/features/wav.js | 1 + .../caniuse-lite/data/features/wbr-element.js | 1 + .../data/features/web-animation.js | 1 + .../data/features/web-app-manifest.js | 1 + .../data/features/web-bluetooth.js | 1 + .../caniuse-lite/data/features/web-serial.js | 1 + .../caniuse-lite/data/features/web-share.js | 1 + .../caniuse-lite/data/features/webauthn.js | 1 + .../caniuse-lite/data/features/webcodecs.js | 1 + .../caniuse-lite/data/features/webgl.js | 1 + .../caniuse-lite/data/features/webgl2.js | 1 + .../caniuse-lite/data/features/webgpu.js | 1 + .../caniuse-lite/data/features/webhid.js | 1 + .../data/features/webkit-user-drag.js | 1 + .../caniuse-lite/data/features/webm.js | 1 + .../caniuse-lite/data/features/webnfc.js | 1 + .../caniuse-lite/data/features/webp.js | 1 + .../caniuse-lite/data/features/websockets.js | 1 + .../data/features/webtransport.js | 1 + .../caniuse-lite/data/features/webusb.js | 1 + .../caniuse-lite/data/features/webvr.js | 1 + .../caniuse-lite/data/features/webvtt.js | 1 + .../caniuse-lite/data/features/webworkers.js | 1 + .../caniuse-lite/data/features/webxr.js | 1 + .../caniuse-lite/data/features/will-change.js | 1 + .../caniuse-lite/data/features/woff.js | 1 + .../caniuse-lite/data/features/woff2.js | 1 + .../caniuse-lite/data/features/word-break.js | 1 + .../caniuse-lite/data/features/wordwrap.js | 1 + .../data/features/x-doc-messaging.js | 1 + .../data/features/x-frame-options.js | 1 + .../caniuse-lite/data/features/xhr2.js | 1 + .../caniuse-lite/data/features/xhtml.js | 1 + .../caniuse-lite/data/features/xhtmlsmil.js | 1 + .../data/features/xml-serializer.js | 1 + node_modules/caniuse-lite/data/regions/AD.js | 1 + node_modules/caniuse-lite/data/regions/AE.js | 1 + node_modules/caniuse-lite/data/regions/AF.js | 1 + node_modules/caniuse-lite/data/regions/AG.js | 1 + node_modules/caniuse-lite/data/regions/AI.js | 1 + node_modules/caniuse-lite/data/regions/AL.js | 1 + node_modules/caniuse-lite/data/regions/AM.js | 1 + node_modules/caniuse-lite/data/regions/AO.js | 1 + node_modules/caniuse-lite/data/regions/AR.js | 1 + node_modules/caniuse-lite/data/regions/AS.js | 1 + node_modules/caniuse-lite/data/regions/AT.js | 1 + node_modules/caniuse-lite/data/regions/AU.js | 1 + node_modules/caniuse-lite/data/regions/AW.js | 1 + node_modules/caniuse-lite/data/regions/AX.js | 1 + node_modules/caniuse-lite/data/regions/AZ.js | 1 + node_modules/caniuse-lite/data/regions/BA.js | 1 + node_modules/caniuse-lite/data/regions/BB.js | 1 + node_modules/caniuse-lite/data/regions/BD.js | 1 + node_modules/caniuse-lite/data/regions/BE.js | 1 + node_modules/caniuse-lite/data/regions/BF.js | 1 + node_modules/caniuse-lite/data/regions/BG.js | 1 + node_modules/caniuse-lite/data/regions/BH.js | 1 + node_modules/caniuse-lite/data/regions/BI.js | 1 + node_modules/caniuse-lite/data/regions/BJ.js | 1 + node_modules/caniuse-lite/data/regions/BM.js | 1 + node_modules/caniuse-lite/data/regions/BN.js | 1 + node_modules/caniuse-lite/data/regions/BO.js | 1 + node_modules/caniuse-lite/data/regions/BR.js | 1 + node_modules/caniuse-lite/data/regions/BS.js | 1 + node_modules/caniuse-lite/data/regions/BT.js | 1 + node_modules/caniuse-lite/data/regions/BW.js | 1 + node_modules/caniuse-lite/data/regions/BY.js | 1 + node_modules/caniuse-lite/data/regions/BZ.js | 1 + node_modules/caniuse-lite/data/regions/CA.js | 1 + node_modules/caniuse-lite/data/regions/CD.js | 1 + node_modules/caniuse-lite/data/regions/CF.js | 1 + node_modules/caniuse-lite/data/regions/CG.js | 1 + node_modules/caniuse-lite/data/regions/CH.js | 1 + node_modules/caniuse-lite/data/regions/CI.js | 1 + node_modules/caniuse-lite/data/regions/CK.js | 1 + node_modules/caniuse-lite/data/regions/CL.js | 1 + node_modules/caniuse-lite/data/regions/CM.js | 1 + node_modules/caniuse-lite/data/regions/CN.js | 1 + node_modules/caniuse-lite/data/regions/CO.js | 1 + node_modules/caniuse-lite/data/regions/CR.js | 1 + node_modules/caniuse-lite/data/regions/CU.js | 1 + node_modules/caniuse-lite/data/regions/CV.js | 1 + node_modules/caniuse-lite/data/regions/CX.js | 1 + node_modules/caniuse-lite/data/regions/CY.js | 1 + node_modules/caniuse-lite/data/regions/CZ.js | 1 + node_modules/caniuse-lite/data/regions/DE.js | 1 + node_modules/caniuse-lite/data/regions/DJ.js | 1 + node_modules/caniuse-lite/data/regions/DK.js | 1 + node_modules/caniuse-lite/data/regions/DM.js | 1 + node_modules/caniuse-lite/data/regions/DO.js | 1 + node_modules/caniuse-lite/data/regions/DZ.js | 1 + node_modules/caniuse-lite/data/regions/EC.js | 1 + node_modules/caniuse-lite/data/regions/EE.js | 1 + node_modules/caniuse-lite/data/regions/EG.js | 1 + node_modules/caniuse-lite/data/regions/ER.js | 1 + node_modules/caniuse-lite/data/regions/ES.js | 1 + node_modules/caniuse-lite/data/regions/ET.js | 1 + node_modules/caniuse-lite/data/regions/FI.js | 1 + node_modules/caniuse-lite/data/regions/FJ.js | 1 + node_modules/caniuse-lite/data/regions/FK.js | 1 + node_modules/caniuse-lite/data/regions/FM.js | 1 + node_modules/caniuse-lite/data/regions/FO.js | 1 + node_modules/caniuse-lite/data/regions/FR.js | 1 + node_modules/caniuse-lite/data/regions/GA.js | 1 + node_modules/caniuse-lite/data/regions/GB.js | 1 + node_modules/caniuse-lite/data/regions/GD.js | 1 + node_modules/caniuse-lite/data/regions/GE.js | 1 + node_modules/caniuse-lite/data/regions/GF.js | 1 + node_modules/caniuse-lite/data/regions/GG.js | 1 + node_modules/caniuse-lite/data/regions/GH.js | 1 + node_modules/caniuse-lite/data/regions/GI.js | 1 + node_modules/caniuse-lite/data/regions/GL.js | 1 + node_modules/caniuse-lite/data/regions/GM.js | 1 + node_modules/caniuse-lite/data/regions/GN.js | 1 + node_modules/caniuse-lite/data/regions/GP.js | 1 + node_modules/caniuse-lite/data/regions/GQ.js | 1 + node_modules/caniuse-lite/data/regions/GR.js | 1 + node_modules/caniuse-lite/data/regions/GT.js | 1 + node_modules/caniuse-lite/data/regions/GU.js | 1 + node_modules/caniuse-lite/data/regions/GW.js | 1 + node_modules/caniuse-lite/data/regions/GY.js | 1 + node_modules/caniuse-lite/data/regions/HK.js | 1 + node_modules/caniuse-lite/data/regions/HN.js | 1 + node_modules/caniuse-lite/data/regions/HR.js | 1 + node_modules/caniuse-lite/data/regions/HT.js | 1 + node_modules/caniuse-lite/data/regions/HU.js | 1 + node_modules/caniuse-lite/data/regions/ID.js | 1 + node_modules/caniuse-lite/data/regions/IE.js | 1 + node_modules/caniuse-lite/data/regions/IL.js | 1 + node_modules/caniuse-lite/data/regions/IM.js | 1 + node_modules/caniuse-lite/data/regions/IN.js | 1 + node_modules/caniuse-lite/data/regions/IQ.js | 1 + node_modules/caniuse-lite/data/regions/IR.js | 1 + node_modules/caniuse-lite/data/regions/IS.js | 1 + node_modules/caniuse-lite/data/regions/IT.js | 1 + node_modules/caniuse-lite/data/regions/JE.js | 1 + node_modules/caniuse-lite/data/regions/JM.js | 1 + node_modules/caniuse-lite/data/regions/JO.js | 1 + node_modules/caniuse-lite/data/regions/JP.js | 1 + node_modules/caniuse-lite/data/regions/KE.js | 1 + node_modules/caniuse-lite/data/regions/KG.js | 1 + node_modules/caniuse-lite/data/regions/KH.js | 1 + node_modules/caniuse-lite/data/regions/KI.js | 1 + node_modules/caniuse-lite/data/regions/KM.js | 1 + node_modules/caniuse-lite/data/regions/KN.js | 1 + node_modules/caniuse-lite/data/regions/KP.js | 1 + node_modules/caniuse-lite/data/regions/KR.js | 1 + node_modules/caniuse-lite/data/regions/KW.js | 1 + node_modules/caniuse-lite/data/regions/KY.js | 1 + node_modules/caniuse-lite/data/regions/KZ.js | 1 + node_modules/caniuse-lite/data/regions/LA.js | 1 + node_modules/caniuse-lite/data/regions/LB.js | 1 + node_modules/caniuse-lite/data/regions/LC.js | 1 + node_modules/caniuse-lite/data/regions/LI.js | 1 + node_modules/caniuse-lite/data/regions/LK.js | 1 + node_modules/caniuse-lite/data/regions/LR.js | 1 + node_modules/caniuse-lite/data/regions/LS.js | 1 + node_modules/caniuse-lite/data/regions/LT.js | 1 + node_modules/caniuse-lite/data/regions/LU.js | 1 + node_modules/caniuse-lite/data/regions/LV.js | 1 + node_modules/caniuse-lite/data/regions/LY.js | 1 + node_modules/caniuse-lite/data/regions/MA.js | 1 + node_modules/caniuse-lite/data/regions/MC.js | 1 + node_modules/caniuse-lite/data/regions/MD.js | 1 + node_modules/caniuse-lite/data/regions/ME.js | 1 + node_modules/caniuse-lite/data/regions/MG.js | 1 + node_modules/caniuse-lite/data/regions/MH.js | 1 + node_modules/caniuse-lite/data/regions/MK.js | 1 + node_modules/caniuse-lite/data/regions/ML.js | 1 + node_modules/caniuse-lite/data/regions/MM.js | 1 + node_modules/caniuse-lite/data/regions/MN.js | 1 + node_modules/caniuse-lite/data/regions/MO.js | 1 + node_modules/caniuse-lite/data/regions/MP.js | 1 + node_modules/caniuse-lite/data/regions/MQ.js | 1 + node_modules/caniuse-lite/data/regions/MR.js | 1 + node_modules/caniuse-lite/data/regions/MS.js | 1 + node_modules/caniuse-lite/data/regions/MT.js | 1 + node_modules/caniuse-lite/data/regions/MU.js | 1 + node_modules/caniuse-lite/data/regions/MV.js | 1 + node_modules/caniuse-lite/data/regions/MW.js | 1 + node_modules/caniuse-lite/data/regions/MX.js | 1 + node_modules/caniuse-lite/data/regions/MY.js | 1 + node_modules/caniuse-lite/data/regions/MZ.js | 1 + node_modules/caniuse-lite/data/regions/NA.js | 1 + node_modules/caniuse-lite/data/regions/NC.js | 1 + node_modules/caniuse-lite/data/regions/NE.js | 1 + node_modules/caniuse-lite/data/regions/NF.js | 1 + node_modules/caniuse-lite/data/regions/NG.js | 1 + node_modules/caniuse-lite/data/regions/NI.js | 1 + node_modules/caniuse-lite/data/regions/NL.js | 1 + node_modules/caniuse-lite/data/regions/NO.js | 1 + node_modules/caniuse-lite/data/regions/NP.js | 1 + node_modules/caniuse-lite/data/regions/NR.js | 1 + node_modules/caniuse-lite/data/regions/NU.js | 1 + node_modules/caniuse-lite/data/regions/NZ.js | 1 + node_modules/caniuse-lite/data/regions/OM.js | 1 + node_modules/caniuse-lite/data/regions/PA.js | 1 + node_modules/caniuse-lite/data/regions/PE.js | 1 + node_modules/caniuse-lite/data/regions/PF.js | 1 + node_modules/caniuse-lite/data/regions/PG.js | 1 + node_modules/caniuse-lite/data/regions/PH.js | 1 + node_modules/caniuse-lite/data/regions/PK.js | 1 + node_modules/caniuse-lite/data/regions/PL.js | 1 + node_modules/caniuse-lite/data/regions/PM.js | 1 + node_modules/caniuse-lite/data/regions/PN.js | 1 + node_modules/caniuse-lite/data/regions/PR.js | 1 + node_modules/caniuse-lite/data/regions/PS.js | 1 + node_modules/caniuse-lite/data/regions/PT.js | 1 + node_modules/caniuse-lite/data/regions/PW.js | 1 + node_modules/caniuse-lite/data/regions/PY.js | 1 + node_modules/caniuse-lite/data/regions/QA.js | 1 + node_modules/caniuse-lite/data/regions/RE.js | 1 + node_modules/caniuse-lite/data/regions/RO.js | 1 + node_modules/caniuse-lite/data/regions/RS.js | 1 + node_modules/caniuse-lite/data/regions/RU.js | 1 + node_modules/caniuse-lite/data/regions/RW.js | 1 + node_modules/caniuse-lite/data/regions/SA.js | 1 + node_modules/caniuse-lite/data/regions/SB.js | 1 + node_modules/caniuse-lite/data/regions/SC.js | 1 + node_modules/caniuse-lite/data/regions/SD.js | 1 + node_modules/caniuse-lite/data/regions/SE.js | 1 + node_modules/caniuse-lite/data/regions/SG.js | 1 + node_modules/caniuse-lite/data/regions/SH.js | 1 + node_modules/caniuse-lite/data/regions/SI.js | 1 + node_modules/caniuse-lite/data/regions/SK.js | 1 + node_modules/caniuse-lite/data/regions/SL.js | 1 + node_modules/caniuse-lite/data/regions/SM.js | 1 + node_modules/caniuse-lite/data/regions/SN.js | 1 + node_modules/caniuse-lite/data/regions/SO.js | 1 + node_modules/caniuse-lite/data/regions/SR.js | 1 + node_modules/caniuse-lite/data/regions/ST.js | 1 + node_modules/caniuse-lite/data/regions/SV.js | 1 + node_modules/caniuse-lite/data/regions/SY.js | 1 + node_modules/caniuse-lite/data/regions/SZ.js | 1 + node_modules/caniuse-lite/data/regions/TC.js | 1 + node_modules/caniuse-lite/data/regions/TD.js | 1 + node_modules/caniuse-lite/data/regions/TG.js | 1 + node_modules/caniuse-lite/data/regions/TH.js | 1 + node_modules/caniuse-lite/data/regions/TJ.js | 1 + node_modules/caniuse-lite/data/regions/TK.js | 1 + node_modules/caniuse-lite/data/regions/TL.js | 1 + node_modules/caniuse-lite/data/regions/TM.js | 1 + node_modules/caniuse-lite/data/regions/TN.js | 1 + node_modules/caniuse-lite/data/regions/TO.js | 1 + node_modules/caniuse-lite/data/regions/TR.js | 1 + node_modules/caniuse-lite/data/regions/TT.js | 1 + node_modules/caniuse-lite/data/regions/TV.js | 1 + node_modules/caniuse-lite/data/regions/TW.js | 1 + node_modules/caniuse-lite/data/regions/TZ.js | 1 + node_modules/caniuse-lite/data/regions/UA.js | 1 + node_modules/caniuse-lite/data/regions/UG.js | 1 + node_modules/caniuse-lite/data/regions/US.js | 1 + node_modules/caniuse-lite/data/regions/UY.js | 1 + node_modules/caniuse-lite/data/regions/UZ.js | 1 + node_modules/caniuse-lite/data/regions/VA.js | 1 + node_modules/caniuse-lite/data/regions/VC.js | 1 + node_modules/caniuse-lite/data/regions/VE.js | 1 + node_modules/caniuse-lite/data/regions/VG.js | 1 + node_modules/caniuse-lite/data/regions/VI.js | 1 + node_modules/caniuse-lite/data/regions/VN.js | 1 + node_modules/caniuse-lite/data/regions/VU.js | 1 + node_modules/caniuse-lite/data/regions/WF.js | 1 + node_modules/caniuse-lite/data/regions/WS.js | 1 + node_modules/caniuse-lite/data/regions/YE.js | 1 + node_modules/caniuse-lite/data/regions/YT.js | 1 + node_modules/caniuse-lite/data/regions/ZA.js | 1 + node_modules/caniuse-lite/data/regions/ZM.js | 1 + node_modules/caniuse-lite/data/regions/ZW.js | 1 + .../caniuse-lite/data/regions/alt-af.js | 1 + .../caniuse-lite/data/regions/alt-an.js | 1 + .../caniuse-lite/data/regions/alt-as.js | 1 + .../caniuse-lite/data/regions/alt-eu.js | 1 + .../caniuse-lite/data/regions/alt-na.js | 1 + .../caniuse-lite/data/regions/alt-oc.js | 1 + .../caniuse-lite/data/regions/alt-sa.js | 1 + .../caniuse-lite/data/regions/alt-ww.js | 1 + .../caniuse-lite/dist/lib/statuses.js | 9 + .../caniuse-lite/dist/lib/supported.js | 9 + .../caniuse-lite/dist/unpacker/agents.js | 47 + .../dist/unpacker/browserVersions.js | 1 + .../caniuse-lite/dist/unpacker/browsers.js | 1 + .../caniuse-lite/dist/unpacker/feature.js | 48 + .../caniuse-lite/dist/unpacker/features.js | 6 + .../caniuse-lite/dist/unpacker/index.js | 4 + .../caniuse-lite/dist/unpacker/region.js | 22 + node_modules/caniuse-lite/package.json | 34 + node_modules/chalk/index.d.ts | 415 + node_modules/chalk/license | 9 + node_modules/chalk/package.json | 68 + node_modules/chalk/readme.md | 341 + node_modules/chalk/source/index.js | 229 + node_modules/chalk/source/templates.js | 134 + node_modules/chalk/source/util.js | 39 + node_modules/char-regex/LICENSE | 21 + node_modules/char-regex/README.md | 27 + node_modules/char-regex/index.d.ts | 13 + node_modules/char-regex/index.js | 39 + node_modules/char-regex/package.json | 44 + node_modules/ci-info/CHANGELOG.md | 165 + node_modules/ci-info/LICENSE | 21 + node_modules/ci-info/README.md | 134 + node_modules/ci-info/index.d.ts | 74 + node_modules/ci-info/index.js | 89 + node_modules/ci-info/package.json | 39 + node_modules/ci-info/vendors.json | 258 + node_modules/cjs-module-lexer/CHANGELOG.md | 40 + node_modules/cjs-module-lexer/LICENSE | 10 + node_modules/cjs-module-lexer/README.md | 453 + node_modules/cjs-module-lexer/dist/lexer.js | 1 + node_modules/cjs-module-lexer/dist/lexer.mjs | 2 + node_modules/cjs-module-lexer/lexer.d.ts | 7 + node_modules/cjs-module-lexer/lexer.js | 1438 ++ node_modules/cjs-module-lexer/package.json | 43 + node_modules/cliui/CHANGELOG.md | 139 + node_modules/cliui/LICENSE.txt | 14 + node_modules/cliui/README.md | 141 + node_modules/cliui/build/index.cjs | 302 + node_modules/cliui/build/index.d.cts | 43 + node_modules/cliui/build/lib/index.js | 287 + node_modules/cliui/build/lib/string-utils.js | 27 + node_modules/cliui/index.mjs | 13 + node_modules/cliui/package.json | 83 + node_modules/co/History.md | 172 + node_modules/co/LICENSE | 22 + node_modules/co/Readme.md | 212 + node_modules/co/index.js | 237 + node_modules/co/package.json | 34 + node_modules/collect-v8-coverage/CHANGELOG.md | 11 + node_modules/collect-v8-coverage/LICENSE | 22 + node_modules/collect-v8-coverage/README.md | 15 + node_modules/collect-v8-coverage/index.d.ts | 7 + node_modules/collect-v8-coverage/index.js | 37 + node_modules/collect-v8-coverage/package.json | 54 + node_modules/color-convert/CHANGELOG.md | 54 + node_modules/color-convert/LICENSE | 21 + node_modules/color-convert/README.md | 68 + node_modules/color-convert/conversions.js | 839 + node_modules/color-convert/index.js | 81 + node_modules/color-convert/package.json | 48 + node_modules/color-convert/route.js | 97 + node_modules/color-name/LICENSE | 8 + node_modules/color-name/README.md | 11 + node_modules/color-name/index.js | 152 + node_modules/color-name/package.json | 28 + node_modules/combined-stream/License | 0 node_modules/combined-stream/Readme.md | 0 .../combined-stream/lib/combined_stream.js | 0 node_modules/combined-stream/package.json | 0 node_modules/combined-stream/yarn.lock | 0 node_modules/concat-map/.travis.yml | 4 + node_modules/concat-map/LICENSE | 18 + node_modules/concat-map/README.markdown | 62 + node_modules/concat-map/example/map.js | 6 + node_modules/concat-map/index.js | 13 + node_modules/concat-map/package.json | 43 + node_modules/concat-map/test/map.js | 39 + node_modules/content-disposition/HISTORY.md | 0 node_modules/content-disposition/LICENSE | 0 node_modules/content-disposition/README.md | 0 node_modules/content-disposition/index.js | 0 node_modules/content-disposition/package.json | 0 node_modules/content-type/HISTORY.md | 0 node_modules/content-type/LICENSE | 0 node_modules/content-type/README.md | 0 node_modules/content-type/index.js | 0 node_modules/content-type/package.json | 0 node_modules/convert-source-map/LICENSE | 23 + node_modules/convert-source-map/README.md | 206 + node_modules/convert-source-map/index.js | 233 + node_modules/convert-source-map/package.json | 38 + node_modules/cookie-signature/.npmignore | 0 node_modules/cookie-signature/History.md | 0 node_modules/cookie-signature/Readme.md | 0 node_modules/cookie-signature/index.js | 0 node_modules/cookie-signature/package.json | 0 node_modules/cookie/HISTORY.md | 0 node_modules/cookie/LICENSE | 0 node_modules/cookie/README.md | 0 node_modules/cookie/SECURITY.md | 0 node_modules/cookie/index.js | 0 node_modules/cookie/package.json | 0 node_modules/cross-spawn/CHANGELOG.md | 130 + node_modules/cross-spawn/LICENSE | 21 + node_modules/cross-spawn/README.md | 96 + node_modules/cross-spawn/index.js | 39 + node_modules/cross-spawn/lib/enoent.js | 59 + node_modules/cross-spawn/lib/parse.js | 91 + node_modules/cross-spawn/lib/util/escape.js | 45 + .../cross-spawn/lib/util/readShebang.js | 23 + .../cross-spawn/lib/util/resolveCommand.js | 52 + node_modules/cross-spawn/package.json | 73 + node_modules/cssom/LICENSE.txt | 0 node_modules/cssom/README.mdown | 0 node_modules/cssom/lib/CSSDocumentRule.js | 0 node_modules/cssom/lib/CSSFontFaceRule.js | 0 node_modules/cssom/lib/CSSHostRule.js | 0 node_modules/cssom/lib/CSSImportRule.js | 0 node_modules/cssom/lib/CSSKeyframeRule.js | 0 node_modules/cssom/lib/CSSKeyframesRule.js | 0 node_modules/cssom/lib/CSSMediaRule.js | 0 node_modules/cssom/lib/CSSOM.js | 0 node_modules/cssom/lib/CSSRule.js | 0 node_modules/cssom/lib/CSSStyleDeclaration.js | 0 node_modules/cssom/lib/CSSStyleRule.js | 0 node_modules/cssom/lib/CSSStyleSheet.js | 0 node_modules/cssom/lib/CSSSupportsRule.js | 0 node_modules/cssom/lib/CSSValue.js | 0 node_modules/cssom/lib/CSSValueExpression.js | 0 node_modules/cssom/lib/MatcherList.js | 0 node_modules/cssom/lib/MediaList.js | 0 node_modules/cssom/lib/StyleSheet.js | 0 node_modules/cssom/lib/clone.js | 0 node_modules/cssom/lib/index.js | 0 node_modules/cssom/lib/parse.js | 0 node_modules/cssom/package.json | 0 node_modules/cssstyle/LICENSE | 0 node_modules/cssstyle/README.md | 0 .../cssstyle/lib/CSSStyleDeclaration.js | 0 .../cssstyle/lib/CSSStyleDeclaration.test.js | 0 .../cssstyle/lib/allExtraProperties.js | 0 node_modules/cssstyle/lib/allProperties.js | 0 .../cssstyle/lib/allWebkitProperties.js | 0 node_modules/cssstyle/lib/constants.js | 0 .../cssstyle/lib/implementedProperties.js | 0 node_modules/cssstyle/lib/named_colors.json | 0 node_modules/cssstyle/lib/parsers.js | 0 node_modules/cssstyle/lib/parsers.test.js | 0 node_modules/cssstyle/lib/properties.js | 0 .../cssstyle/lib/properties/azimuth.js | 0 .../cssstyle/lib/properties/background.js | 0 .../lib/properties/backgroundAttachment.js | 0 .../lib/properties/backgroundColor.js | 0 .../lib/properties/backgroundImage.js | 0 .../lib/properties/backgroundPosition.js | 0 .../lib/properties/backgroundRepeat.js | 0 .../cssstyle/lib/properties/border.js | 0 .../cssstyle/lib/properties/borderBottom.js | 0 .../lib/properties/borderBottomColor.js | 0 .../lib/properties/borderBottomStyle.js | 0 .../lib/properties/borderBottomWidth.js | 0 .../cssstyle/lib/properties/borderCollapse.js | 0 .../cssstyle/lib/properties/borderColor.js | 0 .../cssstyle/lib/properties/borderLeft.js | 0 .../lib/properties/borderLeftColor.js | 0 .../lib/properties/borderLeftStyle.js | 0 .../lib/properties/borderLeftWidth.js | 0 .../cssstyle/lib/properties/borderRight.js | 0 .../lib/properties/borderRightColor.js | 0 .../lib/properties/borderRightStyle.js | 0 .../lib/properties/borderRightWidth.js | 0 .../cssstyle/lib/properties/borderSpacing.js | 0 .../cssstyle/lib/properties/borderStyle.js | 0 .../cssstyle/lib/properties/borderTop.js | 0 .../cssstyle/lib/properties/borderTopColor.js | 0 .../cssstyle/lib/properties/borderTopStyle.js | 0 .../cssstyle/lib/properties/borderTopWidth.js | 0 .../cssstyle/lib/properties/borderWidth.js | 0 .../cssstyle/lib/properties/bottom.js | 0 node_modules/cssstyle/lib/properties/clear.js | 0 node_modules/cssstyle/lib/properties/clip.js | 0 node_modules/cssstyle/lib/properties/color.js | 0 .../cssstyle/lib/properties/cssFloat.js | 0 node_modules/cssstyle/lib/properties/flex.js | 0 .../cssstyle/lib/properties/flexBasis.js | 0 .../cssstyle/lib/properties/flexGrow.js | 0 .../cssstyle/lib/properties/flexShrink.js | 0 node_modules/cssstyle/lib/properties/float.js | 0 .../cssstyle/lib/properties/floodColor.js | 0 node_modules/cssstyle/lib/properties/font.js | 0 .../cssstyle/lib/properties/fontFamily.js | 0 .../cssstyle/lib/properties/fontSize.js | 0 .../cssstyle/lib/properties/fontStyle.js | 0 .../cssstyle/lib/properties/fontVariant.js | 0 .../cssstyle/lib/properties/fontWeight.js | 0 .../cssstyle/lib/properties/height.js | 0 node_modules/cssstyle/lib/properties/left.js | 0 .../cssstyle/lib/properties/lightingColor.js | 0 .../cssstyle/lib/properties/lineHeight.js | 0 .../cssstyle/lib/properties/margin.js | 0 .../cssstyle/lib/properties/marginBottom.js | 0 .../cssstyle/lib/properties/marginLeft.js | 0 .../cssstyle/lib/properties/marginRight.js | 0 .../cssstyle/lib/properties/marginTop.js | 0 .../cssstyle/lib/properties/opacity.js | 0 .../cssstyle/lib/properties/outlineColor.js | 0 .../cssstyle/lib/properties/padding.js | 0 .../cssstyle/lib/properties/paddingBottom.js | 0 .../cssstyle/lib/properties/paddingLeft.js | 0 .../cssstyle/lib/properties/paddingRight.js | 0 .../cssstyle/lib/properties/paddingTop.js | 0 node_modules/cssstyle/lib/properties/right.js | 0 .../cssstyle/lib/properties/stopColor.js | 0 .../lib/properties/textLineThroughColor.js | 0 .../lib/properties/textOverlineColor.js | 0 .../lib/properties/textUnderlineColor.js | 0 node_modules/cssstyle/lib/properties/top.js | 0 .../lib/properties/webkitBorderAfterColor.js | 0 .../lib/properties/webkitBorderBeforeColor.js | 0 .../lib/properties/webkitBorderEndColor.js | 0 .../lib/properties/webkitBorderStartColor.js | 0 .../lib/properties/webkitColumnRuleColor.js | 0 .../webkitMatchNearestMailBlockquoteColor.js | 0 .../lib/properties/webkitTapHighlightColor.js | 0 .../lib/properties/webkitTextEmphasisColor.js | 0 .../lib/properties/webkitTextFillColor.js | 0 .../lib/properties/webkitTextStrokeColor.js | 0 node_modules/cssstyle/lib/properties/width.js | 0 node_modules/cssstyle/lib/utils/colorSpace.js | 0 .../lib/utils/getBasicPropertyDescriptor.js | 0 .../cssstyle/node_modules/cssom/LICENSE.txt | 0 .../cssstyle/node_modules/cssom/README.mdown | 0 .../node_modules/cssom/lib/CSSDocumentRule.js | 0 .../node_modules/cssom/lib/CSSFontFaceRule.js | 0 .../node_modules/cssom/lib/CSSHostRule.js | 0 .../node_modules/cssom/lib/CSSImportRule.js | 0 .../node_modules/cssom/lib/CSSKeyframeRule.js | 0 .../cssom/lib/CSSKeyframesRule.js | 0 .../node_modules/cssom/lib/CSSMediaRule.js | 0 .../cssstyle/node_modules/cssom/lib/CSSOM.js | 0 .../node_modules/cssom/lib/CSSRule.js | 0 .../cssom/lib/CSSStyleDeclaration.js | 0 .../node_modules/cssom/lib/CSSStyleRule.js | 0 .../node_modules/cssom/lib/CSSStyleSheet.js | 0 .../node_modules/cssom/lib/CSSSupportsRule.js | 0 .../node_modules/cssom/lib/CSSValue.js | 0 .../cssom/lib/CSSValueExpression.js | 0 .../node_modules/cssom/lib/MatcherList.js | 0 .../node_modules/cssom/lib/MediaList.js | 0 .../node_modules/cssom/lib/StyleSheet.js | 0 .../cssstyle/node_modules/cssom/lib/clone.js | 0 .../cssstyle/node_modules/cssom/lib/index.js | 0 .../cssstyle/node_modules/cssom/lib/parse.js | 0 .../cssstyle/node_modules/cssom/package.json | 0 node_modules/cssstyle/package.json | 0 node_modules/data-urls/LICENSE.txt | 0 node_modules/data-urls/README.md | 0 node_modules/data-urls/lib/parser.js | 0 node_modules/data-urls/lib/utils.js | 0 node_modules/data-urls/package.json | 0 node_modules/debug/.coveralls.yml | 0 node_modules/debug/.eslintrc | 0 node_modules/debug/.npmignore | 0 node_modules/debug/.travis.yml | 0 node_modules/debug/CHANGELOG.md | 0 node_modules/debug/LICENSE | 0 node_modules/debug/Makefile | 0 node_modules/debug/README.md | 0 node_modules/debug/component.json | 0 node_modules/debug/karma.conf.js | 0 node_modules/debug/node.js | 0 node_modules/debug/package.json | 0 node_modules/debug/src/browser.js | 0 node_modules/debug/src/debug.js | 0 node_modules/debug/src/index.js | 0 node_modules/debug/src/inspector-log.js | 0 node_modules/debug/src/node.js | 0 node_modules/decimal.js/LICENCE.md | 0 node_modules/decimal.js/README.md | 0 node_modules/decimal.js/decimal.d.ts | 0 node_modules/decimal.js/decimal.js | 0 node_modules/decimal.js/decimal.mjs | 0 node_modules/decimal.js/package.json | 0 node_modules/dedent/LICENSE | 21 + node_modules/dedent/README.md | 59 + node_modules/dedent/dist/dedent.js | 59 + node_modules/dedent/package.json | 43 + node_modules/deep-is/.travis.yml | 0 node_modules/deep-is/LICENSE | 0 node_modules/deep-is/README.markdown | 0 node_modules/deep-is/example/cmp.js | 0 node_modules/deep-is/index.js | 0 node_modules/deep-is/package.json | 0 node_modules/deep-is/test/NaN.js | 0 node_modules/deep-is/test/cmp.js | 0 node_modules/deep-is/test/neg-vs-pos-0.js | 0 node_modules/deepmerge/changelog.md | 159 + node_modules/deepmerge/dist/cjs.js | 133 + node_modules/deepmerge/dist/umd.js | 139 + node_modules/deepmerge/index.d.ts | 16 + node_modules/deepmerge/index.js | 106 + node_modules/deepmerge/license.txt | 21 + node_modules/deepmerge/package.json | 43 + node_modules/deepmerge/readme.md | 264 + node_modules/deepmerge/rollup.config.js | 22 + node_modules/delayed-stream/.npmignore | 0 node_modules/delayed-stream/License | 0 node_modules/delayed-stream/Makefile | 0 node_modules/delayed-stream/Readme.md | 0 .../delayed-stream/lib/delayed_stream.js | 0 node_modules/delayed-stream/package.json | 0 node_modules/depd/History.md | 0 node_modules/depd/LICENSE | 0 node_modules/depd/Readme.md | 0 node_modules/depd/index.js | 0 node_modules/depd/lib/browser/index.js | 0 node_modules/depd/package.json | 0 node_modules/destroy/LICENSE | 0 node_modules/destroy/README.md | 0 node_modules/destroy/index.js | 0 node_modules/destroy/package.json | 0 node_modules/detect-newline/index.d.ts | 26 + node_modules/detect-newline/index.js | 21 + node_modules/detect-newline/license | 9 + node_modules/detect-newline/package.json | 39 + node_modules/detect-newline/readme.md | 42 + node_modules/diff-sequences/LICENSE | 21 + node_modules/diff-sequences/README.md | 404 + node_modules/diff-sequences/build/index.d.ts | 38 + node_modules/diff-sequences/build/index.js | 802 + node_modules/diff-sequences/package.json | 39 + node_modules/domexception/LICENSE.txt | 0 node_modules/domexception/README.md | 0 node_modules/domexception/index.js | 0 .../domexception/lib/DOMException-impl.js | 0 node_modules/domexception/lib/DOMException.js | 0 .../domexception/lib/legacy-error-codes.json | 0 node_modules/domexception/lib/utils.js | 0 .../webidl-conversions/LICENSE.md | 0 .../node_modules/webidl-conversions/README.md | 0 .../webidl-conversions/lib/index.js | 0 .../webidl-conversions/package.json | 0 node_modules/domexception/package.json | 0 .../domexception/webidl2js-wrapper.js | 0 node_modules/domino/CHANGELOG.md | 0 node_modules/domino/LICENSE | 0 node_modules/domino/README.md | 0 .../domino/lib/CSSStyleDeclaration.js | 0 node_modules/domino/lib/CharacterData.js | 0 node_modules/domino/lib/ChildNode.js | 0 node_modules/domino/lib/Comment.js | 0 node_modules/domino/lib/ContainerNode.js | 0 node_modules/domino/lib/CustomEvent.js | 0 node_modules/domino/lib/DOMException.js | 0 node_modules/domino/lib/DOMImplementation.js | 0 node_modules/domino/lib/DOMTokenList.js | 0 node_modules/domino/lib/Document.js | 0 node_modules/domino/lib/DocumentFragment.js | 0 node_modules/domino/lib/DocumentType.js | 0 node_modules/domino/lib/Element.js | 0 node_modules/domino/lib/Event.js | 0 node_modules/domino/lib/EventTarget.js | 0 .../domino/lib/FilteredElementList.js | 0 node_modules/domino/lib/HTMLParser.js | 0 node_modules/domino/lib/Leaf.js | 0 node_modules/domino/lib/LinkedList.js | 0 node_modules/domino/lib/Location.js | 0 node_modules/domino/lib/MouseEvent.js | 0 node_modules/domino/lib/MutationConstants.js | 0 node_modules/domino/lib/NamedNodeMap.js | 0 node_modules/domino/lib/NavigatorID.js | 0 node_modules/domino/lib/Node.js | 0 node_modules/domino/lib/NodeFilter.js | 0 node_modules/domino/lib/NodeIterator.js | 0 node_modules/domino/lib/NodeList.es5.js | 0 node_modules/domino/lib/NodeList.es6.js | 0 node_modules/domino/lib/NodeList.js | 0 node_modules/domino/lib/NodeTraversal.js | 0 node_modules/domino/lib/NodeUtils.js | 0 .../domino/lib/NonDocumentTypeChildNode.js | 0 .../domino/lib/ProcessingInstruction.js | 0 node_modules/domino/lib/Text.js | 0 node_modules/domino/lib/TreeWalker.js | 0 node_modules/domino/lib/UIEvent.js | 0 node_modules/domino/lib/URL.js | 0 node_modules/domino/lib/URLUtils.js | 0 node_modules/domino/lib/Window.js | 0 node_modules/domino/lib/WindowTimers.js | 0 node_modules/domino/lib/attributes.js | 0 node_modules/domino/lib/config.js | 0 node_modules/domino/lib/cssparser.js | 0 node_modules/domino/lib/defineElement.js | 0 node_modules/domino/lib/events.js | 0 node_modules/domino/lib/htmlelts.js | 0 node_modules/domino/lib/impl.js | 0 node_modules/domino/lib/index.d.ts | 0 node_modules/domino/lib/index.js | 0 node_modules/domino/lib/select.js | 0 node_modules/domino/lib/sloppy.js | 0 node_modules/domino/lib/svg.js | 0 node_modules/domino/lib/utils.js | 0 node_modules/domino/lib/xmlnames.js | 0 node_modules/domino/package.json | 0 node_modules/ee-first/LICENSE | 0 node_modules/ee-first/README.md | 0 node_modules/ee-first/index.js | 0 node_modules/ee-first/package.json | 0 .../electron-to-chromium/CHANGELOG.md | 14 + node_modules/electron-to-chromium/LICENSE | 5 + node_modules/electron-to-chromium/README.md | 186 + .../electron-to-chromium/chromium-versions.js | 52 + .../chromium-versions.json | 1 + .../full-chromium-versions.js | 2188 +++ .../full-chromium-versions.json | 1 + .../electron-to-chromium/full-versions.js | 1618 ++ .../electron-to-chromium/full-versions.json | 1 + node_modules/electron-to-chromium/index.js | 36 + .../electron-to-chromium/package.json | 42 + node_modules/electron-to-chromium/versions.js | 105 + .../electron-to-chromium/versions.json | 1 + node_modules/emittery/index.d.ts | 606 + node_modules/emittery/index.js | 531 + node_modules/emittery/license | 9 + node_modules/emittery/maps.js | 9 + node_modules/emittery/package.json | 67 + node_modules/emittery/readme.md | 569 + node_modules/emoji-regex/LICENSE-MIT.txt | 20 + node_modules/emoji-regex/README.md | 73 + node_modules/emoji-regex/es2015/index.js | 6 + node_modules/emoji-regex/es2015/text.js | 6 + node_modules/emoji-regex/index.d.ts | 23 + node_modules/emoji-regex/index.js | 6 + node_modules/emoji-regex/package.json | 50 + node_modules/emoji-regex/text.js | 6 + node_modules/encodeurl/HISTORY.md | 0 node_modules/encodeurl/LICENSE | 0 node_modules/encodeurl/README.md | 0 node_modules/encodeurl/index.js | 0 node_modules/encodeurl/package.json | 0 node_modules/error-ex/LICENSE | 21 + node_modules/error-ex/README.md | 144 + node_modules/error-ex/index.js | 141 + node_modules/error-ex/package.json | 46 + node_modules/escalade/dist/index.js | 22 + node_modules/escalade/dist/index.mjs | 22 + node_modules/escalade/index.d.ts | 3 + node_modules/escalade/license | 9 + node_modules/escalade/package.json | 61 + node_modules/escalade/readme.md | 211 + node_modules/escalade/sync/index.d.ts | 2 + node_modules/escalade/sync/index.js | 18 + node_modules/escalade/sync/index.mjs | 18 + node_modules/escape-html/LICENSE | 0 node_modules/escape-html/Readme.md | 0 node_modules/escape-html/index.js | 0 node_modules/escape-html/package.json | 0 node_modules/escape-string-regexp/index.d.ts | 18 + node_modules/escape-string-regexp/index.js | 11 + node_modules/escape-string-regexp/license | 9 + .../escape-string-regexp/package.json | 43 + node_modules/escape-string-regexp/readme.md | 29 + node_modules/escodegen/LICENSE.BSD | 0 node_modules/escodegen/README.md | 0 node_modules/escodegen/escodegen.js | 0 node_modules/escodegen/package.json | 0 node_modules/esprima/ChangeLog | 0 node_modules/esprima/LICENSE.BSD | 0 node_modules/esprima/README.md | 0 node_modules/esprima/dist/esprima.js | 0 node_modules/esprima/package.json | 0 node_modules/estraverse/.jshintrc | 0 node_modules/estraverse/LICENSE.BSD | 0 node_modules/estraverse/README.md | 0 node_modules/estraverse/estraverse.js | 0 node_modules/estraverse/gulpfile.js | 0 node_modules/estraverse/package.json | 0 node_modules/esutils/LICENSE.BSD | 0 node_modules/esutils/README.md | 0 node_modules/esutils/lib/ast.js | 0 node_modules/esutils/lib/code.js | 0 node_modules/esutils/lib/keyword.js | 0 node_modules/esutils/lib/utils.js | 0 node_modules/esutils/package.json | 0 node_modules/etag/HISTORY.md | 0 node_modules/etag/LICENSE | 0 node_modules/etag/README.md | 0 node_modules/etag/index.js | 0 node_modules/etag/package.json | 0 node_modules/execa/index.d.ts | 564 + node_modules/execa/index.js | 268 + node_modules/execa/lib/command.js | 52 + node_modules/execa/lib/error.js | 88 + node_modules/execa/lib/kill.js | 115 + node_modules/execa/lib/promise.js | 46 + node_modules/execa/lib/stdio.js | 52 + node_modules/execa/lib/stream.js | 97 + node_modules/execa/license | 9 + node_modules/execa/package.json | 74 + node_modules/execa/readme.md | 663 + node_modules/exit/.jshintrc | 14 + node_modules/exit/.npmignore | 0 node_modules/exit/.travis.yml | 6 + node_modules/exit/Gruntfile.js | 48 + node_modules/exit/LICENSE-MIT | 22 + node_modules/exit/README.md | 75 + node_modules/exit/lib/exit.js | 41 + node_modules/exit/package.json | 47 + node_modules/exit/test/exit_test.js | 121 + node_modules/exit/test/fixtures/10-stderr.txt | 10 + .../exit/test/fixtures/10-stdout-stderr.txt | 20 + node_modules/exit/test/fixtures/10-stdout.txt | 10 + .../exit/test/fixtures/100-stderr.txt | 100 + .../exit/test/fixtures/100-stdout-stderr.txt | 200 + .../exit/test/fixtures/100-stdout.txt | 100 + .../exit/test/fixtures/1000-stderr.txt | 1000 ++ .../exit/test/fixtures/1000-stdout-stderr.txt | 2000 +++ .../exit/test/fixtures/1000-stdout.txt | 1000 ++ .../exit/test/fixtures/create-files.sh | 8 + node_modules/exit/test/fixtures/log-broken.js | 23 + node_modules/exit/test/fixtures/log.js | 25 + node_modules/expect/LICENSE | 21 + node_modules/expect/README.md | 3 + .../expect/build/asymmetricMatchers.js | 354 + .../build/extractExpectedAssertionsErrors.js | 85 + node_modules/expect/build/index.d.ts | 361 + node_modules/expect/build/index.js | 397 + .../expect/build/jestMatchersObject.js | 99 + node_modules/expect/build/matchers.js | 1280 ++ node_modules/expect/build/print.js | 122 + node_modules/expect/build/spyMatchers.js | 1250 ++ node_modules/expect/build/toThrowMatchers.js | 450 + node_modules/expect/build/types.js | 3 + node_modules/expect/package.json | 43 + node_modules/express-rate-limit/changelog.md | 0 .../express-rate-limit/dist/index.cjs | 0 .../express-rate-limit/dist/index.d.ts | 0 .../express-rate-limit/dist/index.mjs | 0 node_modules/express-rate-limit/license.md | 0 node_modules/express-rate-limit/package.json | 0 node_modules/express-rate-limit/readme.md | 0 node_modules/express-rate-limit/tsconfig.json | 0 node_modules/express/History.md | 0 node_modules/express/LICENSE | 0 node_modules/express/Readme.md | 0 node_modules/express/index.js | 0 node_modules/express/lib/application.js | 0 node_modules/express/lib/express.js | 0 node_modules/express/lib/middleware/init.js | 0 node_modules/express/lib/middleware/query.js | 0 node_modules/express/lib/request.js | 0 node_modules/express/lib/response.js | 0 node_modules/express/lib/router/index.js | 0 node_modules/express/lib/router/layer.js | 0 node_modules/express/lib/router/route.js | 0 node_modules/express/lib/utils.js | 0 node_modules/express/lib/view.js | 0 node_modules/express/package.json | 0 .../fast-json-stable-stringify/.eslintrc.yml | 26 + .../.github/FUNDING.yml | 1 + .../fast-json-stable-stringify/.travis.yml | 8 + .../fast-json-stable-stringify/LICENSE | 21 + .../fast-json-stable-stringify/README.md | 131 + .../benchmark/index.js | 31 + .../benchmark/test.json | 137 + .../example/key_cmp.js | 7 + .../example/nested.js | 3 + .../fast-json-stable-stringify/example/str.js | 3 + .../example/value_cmp.js | 7 + .../fast-json-stable-stringify/index.d.ts | 4 + .../fast-json-stable-stringify/index.js | 59 + .../fast-json-stable-stringify/package.json | 52 + .../fast-json-stable-stringify/test/cmp.js | 13 + .../fast-json-stable-stringify/test/nested.js | 44 + .../fast-json-stable-stringify/test/str.js | 46 + .../test/to-json.js | 22 + node_modules/fast-levenshtein/LICENSE.md | 0 node_modules/fast-levenshtein/README.md | 0 node_modules/fast-levenshtein/levenshtein.js | 0 node_modules/fast-levenshtein/package.json | 0 node_modules/fb-watchman/README.md | 34 + node_modules/fb-watchman/index.js | 327 + node_modules/fb-watchman/package.json | 35 + node_modules/fill-range/LICENSE | 21 + node_modules/fill-range/README.md | 237 + node_modules/fill-range/index.js | 249 + node_modules/fill-range/package.json | 69 + node_modules/finalhandler/HISTORY.md | 0 node_modules/finalhandler/LICENSE | 0 node_modules/finalhandler/README.md | 0 node_modules/finalhandler/SECURITY.md | 0 node_modules/finalhandler/index.js | 0 node_modules/finalhandler/package.json | 0 node_modules/find-up/index.d.ts | 137 + node_modules/find-up/index.js | 89 + node_modules/find-up/license | 9 + node_modules/find-up/package.json | 53 + node_modules/find-up/readme.md | 156 + node_modules/form-data/License | 0 node_modules/form-data/README.md.bak | 0 node_modules/form-data/Readme.md | 0 node_modules/form-data/index.d.ts | 0 node_modules/form-data/lib/browser.js | 0 node_modules/form-data/lib/form_data.js | 0 node_modules/form-data/lib/populate.js | 0 node_modules/form-data/package.json | 0 node_modules/forwarded/HISTORY.md | 0 node_modules/forwarded/LICENSE | 0 node_modules/forwarded/README.md | 0 node_modules/forwarded/index.js | 0 node_modules/forwarded/package.json | 0 node_modules/fresh/HISTORY.md | 0 node_modules/fresh/LICENSE | 0 node_modules/fresh/README.md | 0 node_modules/fresh/index.js | 0 node_modules/fresh/package.json | 0 node_modules/fs.realpath/LICENSE | 43 + node_modules/fs.realpath/README.md | 33 + node_modules/fs.realpath/index.js | 66 + node_modules/fs.realpath/old.js | 303 + node_modules/fs.realpath/package.json | 26 + node_modules/function-bind/.editorconfig | 0 node_modules/function-bind/.eslintrc | 0 node_modules/function-bind/.jscs.json | 0 node_modules/function-bind/.npmignore | 0 node_modules/function-bind/.travis.yml | 0 node_modules/function-bind/LICENSE | 0 node_modules/function-bind/README.md | 0 node_modules/function-bind/implementation.js | 0 node_modules/function-bind/index.js | 0 node_modules/function-bind/package.json | 0 node_modules/function-bind/test/.eslintrc | 0 node_modules/function-bind/test/index.js | 0 node_modules/gensync/LICENSE | 7 + node_modules/gensync/README.md | 196 + node_modules/gensync/index.js | 373 + node_modules/gensync/index.js.flow | 32 + node_modules/gensync/package.json | 37 + node_modules/gensync/test/.babelrc | 5 + node_modules/gensync/test/index.test.js | 489 + node_modules/get-caller-file/LICENSE.md | 6 + node_modules/get-caller-file/README.md | 41 + node_modules/get-caller-file/index.d.ts | 2 + node_modules/get-caller-file/index.js | 22 + node_modules/get-caller-file/index.js.map | 1 + node_modules/get-caller-file/package.json | 42 + node_modules/get-intrinsic/.eslintrc | 0 .../get-intrinsic/.github/FUNDING.yml | 0 node_modules/get-intrinsic/.nycrc | 0 node_modules/get-intrinsic/CHANGELOG.md | 0 node_modules/get-intrinsic/LICENSE | 0 node_modules/get-intrinsic/README.md | 0 node_modules/get-intrinsic/index.js | 0 node_modules/get-intrinsic/package.json | 0 .../get-intrinsic/test/GetIntrinsic.js | 0 node_modules/get-package-type/CHANGELOG.md | 10 + node_modules/get-package-type/LICENSE | 21 + node_modules/get-package-type/README.md | 32 + node_modules/get-package-type/async.cjs | 52 + node_modules/get-package-type/cache.cjs | 3 + node_modules/get-package-type/index.cjs | 7 + .../get-package-type/is-node-modules.cjs | 15 + node_modules/get-package-type/package.json | 35 + node_modules/get-package-type/sync.cjs | 42 + node_modules/get-stream/buffer-stream.js | 52 + node_modules/get-stream/index.d.ts | 105 + node_modules/get-stream/index.js | 61 + node_modules/get-stream/license | 9 + node_modules/get-stream/package.json | 47 + node_modules/get-stream/readme.md | 124 + node_modules/glob/LICENSE | 21 + node_modules/glob/README.md | 378 + node_modules/glob/common.js | 238 + node_modules/glob/glob.js | 790 + node_modules/glob/package.json | 55 + node_modules/glob/sync.js | 486 + node_modules/globals/globals.json | 1563 ++ node_modules/globals/index.js | 2 + node_modules/globals/license | 9 + node_modules/globals/package.json | 41 + node_modules/globals/readme.md | 41 + node_modules/graceful-fs/LICENSE | 15 + node_modules/graceful-fs/README.md | 143 + node_modules/graceful-fs/clone.js | 23 + node_modules/graceful-fs/graceful-fs.js | 448 + node_modules/graceful-fs/legacy-streams.js | 118 + node_modules/graceful-fs/package.json | 50 + node_modules/graceful-fs/polyfills.js | 355 + node_modules/has-flag/index.d.ts | 39 + node_modules/has-flag/index.js | 8 + node_modules/has-flag/license | 9 + node_modules/has-flag/package.json | 46 + node_modules/has-flag/readme.md | 89 + node_modules/has-symbols/.eslintrc | 0 node_modules/has-symbols/.github/FUNDING.yml | 0 node_modules/has-symbols/.nycrc | 0 node_modules/has-symbols/CHANGELOG.md | 0 node_modules/has-symbols/LICENSE | 0 node_modules/has-symbols/README.md | 0 node_modules/has-symbols/index.js | 0 node_modules/has-symbols/package.json | 0 node_modules/has-symbols/shams.js | 0 node_modules/has-symbols/test/index.js | 0 .../has-symbols/test/shams/core-js.js | 0 .../test/shams/get-own-property-symbols.js | 0 node_modules/has-symbols/test/tests.js | 0 node_modules/has/LICENSE-MIT | 0 node_modules/has/README.md | 0 node_modules/has/package.json | 0 node_modules/has/src/index.js | 0 node_modules/has/test/index.js | 0 .../html-encoding-sniffer/LICENSE.txt | 0 node_modules/html-encoding-sniffer/README.md | 0 .../lib/html-encoding-sniffer.js | 0 .../html-encoding-sniffer/package.json | 0 node_modules/html-entities/LICENSE | 0 node_modules/html-entities/README.md | 0 node_modules/html-entities/lib/index.d.ts | 0 node_modules/html-entities/lib/index.js | 0 node_modules/html-entities/lib/index.js.flow | 0 .../html-entities/lib/named-references.js | 0 .../html-entities/lib/numeric-unicode-map.js | 0 .../html-entities/lib/surrogate-pairs.js | 0 node_modules/html-entities/package.json | 0 node_modules/html-escaper/LICENSE.txt | 19 + node_modules/html-escaper/README.md | 97 + node_modules/html-escaper/cjs/index.js | 65 + node_modules/html-escaper/cjs/package.json | 1 + node_modules/html-escaper/esm/index.js | 62 + node_modules/html-escaper/index.js | 70 + node_modules/html-escaper/min.js | 1 + node_modules/html-escaper/package.json | 42 + node_modules/html-escaper/test/index.js | 23 + node_modules/html-escaper/test/package.json | 1 + node_modules/http-errors/HISTORY.md | 0 node_modules/http-errors/LICENSE | 0 node_modules/http-errors/README.md | 0 node_modules/http-errors/index.js | 0 node_modules/http-errors/package.json | 0 node_modules/http-proxy-agent/README.md | 0 node_modules/http-proxy-agent/dist/agent.d.ts | 0 node_modules/http-proxy-agent/dist/agent.js | 0 .../http-proxy-agent/dist/agent.js.map | 0 node_modules/http-proxy-agent/dist/index.d.ts | 0 node_modules/http-proxy-agent/dist/index.js | 0 .../http-proxy-agent/dist/index.js.map | 0 .../node_modules/debug/LICENSE | 0 .../node_modules/debug/README.md | 0 .../node_modules/debug/package.json | 0 .../node_modules/debug/src/browser.js | 0 .../node_modules/debug/src/common.js | 0 .../node_modules/debug/src/index.js | 0 .../node_modules/debug/src/node.js | 0 .../http-proxy-agent/node_modules/ms/index.js | 0 .../node_modules/ms/license.md | 0 .../node_modules/ms/package.json | 0 .../node_modules/ms/readme.md | 0 node_modules/http-proxy-agent/package.json | 0 node_modules/https-proxy-agent/README.md | 0 .../https-proxy-agent/dist/agent.d.ts | 0 node_modules/https-proxy-agent/dist/agent.js | 0 .../https-proxy-agent/dist/agent.js.map | 0 .../https-proxy-agent/dist/index.d.ts | 0 node_modules/https-proxy-agent/dist/index.js | 0 .../https-proxy-agent/dist/index.js.map | 0 .../dist/parse-proxy-response.d.ts | 0 .../dist/parse-proxy-response.js | 0 .../dist/parse-proxy-response.js.map | 0 .../node_modules/debug/LICENSE | 0 .../node_modules/debug/README.md | 0 .../node_modules/debug/package.json | 0 .../node_modules/debug/src/browser.js | 0 .../node_modules/debug/src/common.js | 0 .../node_modules/debug/src/index.js | 0 .../node_modules/debug/src/node.js | 0 .../node_modules/ms/index.js | 0 .../node_modules/ms/license.md | 0 .../node_modules/ms/package.json | 0 .../node_modules/ms/readme.md | 0 node_modules/https-proxy-agent/package.json | 0 node_modules/human-signals/CHANGELOG.md | 11 + node_modules/human-signals/LICENSE | 201 + node_modules/human-signals/README.md | 165 + node_modules/human-signals/build/src/core.js | 273 + .../human-signals/build/src/core.js.map | 1 + .../human-signals/build/src/main.d.ts | 52 + node_modules/human-signals/build/src/main.js | 71 + .../human-signals/build/src/main.js.map | 1 + .../human-signals/build/src/realtime.js | 19 + .../human-signals/build/src/realtime.js.map | 1 + .../human-signals/build/src/signals.js | 35 + .../human-signals/build/src/signals.js.map | 1 + node_modules/human-signals/package.json | 64 + node_modules/iconv-lite/Changelog.md | 0 node_modules/iconv-lite/LICENSE | 0 node_modules/iconv-lite/README.md | 0 .../iconv-lite/encodings/dbcs-codec.js | 0 .../iconv-lite/encodings/dbcs-data.js | 0 node_modules/iconv-lite/encodings/index.js | 0 node_modules/iconv-lite/encodings/internal.js | 0 .../iconv-lite/encodings/sbcs-codec.js | 0 .../encodings/sbcs-data-generated.js | 0 .../iconv-lite/encodings/sbcs-data.js | 0 .../encodings/tables/big5-added.json | 0 .../iconv-lite/encodings/tables/cp936.json | 0 .../iconv-lite/encodings/tables/cp949.json | 0 .../iconv-lite/encodings/tables/cp950.json | 0 .../iconv-lite/encodings/tables/eucjp.json | 0 .../encodings/tables/gb18030-ranges.json | 0 .../encodings/tables/gbk-added.json | 0 .../iconv-lite/encodings/tables/shiftjis.json | 0 node_modules/iconv-lite/encodings/utf16.js | 0 node_modules/iconv-lite/encodings/utf7.js | 0 node_modules/iconv-lite/lib/bom-handling.js | 0 node_modules/iconv-lite/lib/extend-node.js | 0 node_modules/iconv-lite/lib/index.d.ts | 0 node_modules/iconv-lite/lib/index.js | 0 node_modules/iconv-lite/lib/streams.js | 0 node_modules/iconv-lite/package.json | 0 node_modules/import-local/fixtures/cli.js | 7 + node_modules/import-local/index.js | 24 + node_modules/import-local/license | 9 + node_modules/import-local/package.json | 52 + node_modules/import-local/readme.md | 37 + node_modules/imurmurhash/README.md | 122 + node_modules/imurmurhash/imurmurhash.js | 138 + node_modules/imurmurhash/imurmurhash.min.js | 12 + node_modules/imurmurhash/package.json | 40 + node_modules/inflight/LICENSE | 15 + node_modules/inflight/README.md | 37 + node_modules/inflight/inflight.js | 54 + node_modules/inflight/package.json | 29 + node_modules/inherits/LICENSE | 0 node_modules/inherits/README.md | 0 node_modules/inherits/inherits.js | 0 node_modules/inherits/inherits_browser.js | 0 node_modules/inherits/package.json | 0 node_modules/ipaddr.js/LICENSE | 0 node_modules/ipaddr.js/README.md | 0 node_modules/ipaddr.js/ipaddr.min.js | 0 node_modules/ipaddr.js/lib/ipaddr.js | 0 node_modules/ipaddr.js/lib/ipaddr.js.d.ts | 0 node_modules/ipaddr.js/package.json | 0 node_modules/is-arrayish/.editorconfig | 18 + node_modules/is-arrayish/.istanbul.yml | 4 + node_modules/is-arrayish/.npmignore | 5 + node_modules/is-arrayish/.travis.yml | 17 + node_modules/is-arrayish/LICENSE | 21 + node_modules/is-arrayish/README.md | 16 + node_modules/is-arrayish/index.js | 10 + node_modules/is-arrayish/package.json | 34 + node_modules/is-core-module/.eslintrc | 18 + node_modules/is-core-module/.nycrc | 9 + node_modules/is-core-module/CHANGELOG.md | 151 + node_modules/is-core-module/LICENSE | 20 + node_modules/is-core-module/README.md | 40 + node_modules/is-core-module/core.json | 155 + node_modules/is-core-module/index.js | 69 + node_modules/is-core-module/package.json | 72 + node_modules/is-core-module/test/index.js | 133 + .../is-fullwidth-code-point/index.d.ts | 17 + node_modules/is-fullwidth-code-point/index.js | 50 + node_modules/is-fullwidth-code-point/license | 9 + .../is-fullwidth-code-point/package.json | 42 + .../is-fullwidth-code-point/readme.md | 39 + node_modules/is-generator-fn/index.d.ts | 24 + node_modules/is-generator-fn/index.js | 14 + node_modules/is-generator-fn/license | 9 + node_modules/is-generator-fn/package.json | 38 + node_modules/is-generator-fn/readme.md | 33 + node_modules/is-number/LICENSE | 21 + node_modules/is-number/README.md | 187 + node_modules/is-number/index.js | 18 + node_modules/is-number/package.json | 82 + .../LICENSE-MIT.txt | 0 .../README.md | 0 .../package.json | 0 node_modules/is-stream/index.d.ts | 79 + node_modules/is-stream/index.js | 28 + node_modules/is-stream/license | 9 + node_modules/is-stream/package.json | 42 + node_modules/is-stream/readme.md | 60 + node_modules/isexe/.npmignore | 2 + node_modules/isexe/LICENSE | 15 + node_modules/isexe/README.md | 51 + node_modules/isexe/index.js | 57 + node_modules/isexe/mode.js | 41 + node_modules/isexe/package.json | 31 + node_modules/isexe/test/basic.js | 221 + node_modules/isexe/windows.js | 42 + .../istanbul-lib-coverage/CHANGELOG.md | 193 + node_modules/istanbul-lib-coverage/LICENSE | 24 + node_modules/istanbul-lib-coverage/README.md | 29 + node_modules/istanbul-lib-coverage/index.js | 64 + .../istanbul-lib-coverage/lib/coverage-map.js | 134 + .../lib/coverage-summary.js | 112 + .../lib/data-properties.js | 12 + .../lib/file-coverage.js | 345 + .../istanbul-lib-coverage/lib/percent.js | 15 + .../istanbul-lib-coverage/package.json | 47 + .../istanbul-lib-instrument/CHANGELOG.md | 631 + node_modules/istanbul-lib-instrument/LICENSE | 24 + .../istanbul-lib-instrument/README.md | 22 + .../istanbul-lib-instrument/package.json | 50 + .../istanbul-lib-instrument/src/constants.js | 14 + .../istanbul-lib-instrument/src/index.js | 21 + .../src/instrumenter.js | 162 + .../src/read-coverage.js | 77 + .../src/source-coverage.js | 135 + .../istanbul-lib-instrument/src/visitor.js | 843 + node_modules/istanbul-lib-report/CHANGELOG.md | 185 + node_modules/istanbul-lib-report/LICENSE | 24 + node_modules/istanbul-lib-report/README.md | 43 + node_modules/istanbul-lib-report/index.js | 40 + .../istanbul-lib-report/lib/context.js | 132 + .../istanbul-lib-report/lib/file-writer.js | 189 + node_modules/istanbul-lib-report/lib/path.js | 169 + .../istanbul-lib-report/lib/report-base.js | 16 + .../lib/summarizer-factory.js | 284 + node_modules/istanbul-lib-report/lib/tree.js | 137 + .../istanbul-lib-report/lib/watermarks.js | 15 + .../istanbul-lib-report/lib/xml-writer.js | 90 + node_modules/istanbul-lib-report/package.json | 45 + .../istanbul-lib-source-maps/CHANGELOG.md | 295 + node_modules/istanbul-lib-source-maps/LICENSE | 24 + .../istanbul-lib-source-maps/README.md | 11 + .../istanbul-lib-source-maps/index.js | 15 + .../lib/get-mapping.js | 182 + .../istanbul-lib-source-maps/lib/map-store.js | 226 + .../istanbul-lib-source-maps/lib/mapped.js | 113 + .../istanbul-lib-source-maps/lib/pathutils.js | 21 + .../lib/transform-utils.js | 21 + .../lib/transformer.js | 147 + .../node_modules/debug/LICENSE | 20 + .../node_modules/debug/README.md | 481 + .../node_modules/debug/package.json | 59 + .../node_modules/debug/src/browser.js | 269 + .../node_modules/debug/src/common.js | 274 + .../node_modules/debug/src/index.js | 10 + .../node_modules/debug/src/node.js | 263 + .../node_modules/ms/index.js | 162 + .../node_modules/ms/license.md | 21 + .../node_modules/ms/package.json | 37 + .../node_modules/ms/readme.md | 60 + .../istanbul-lib-source-maps/package.json | 45 + node_modules/istanbul-reports/CHANGELOG.md | 450 + node_modules/istanbul-reports/LICENSE | 24 + node_modules/istanbul-reports/README.md | 13 + node_modules/istanbul-reports/index.js | 24 + .../istanbul-reports/lib/clover/index.js | 164 + .../istanbul-reports/lib/cobertura/index.js | 151 + .../istanbul-reports/lib/html-spa/.babelrc | 3 + .../lib/html-spa/assets/bundle.js | 30 + .../lib/html-spa/assets/sort-arrow-sprite.png | Bin 0 -> 138 bytes .../lib/html-spa/assets/spa.css | 298 + .../istanbul-reports/lib/html-spa/index.js | 176 + .../lib/html-spa/src/fileBreadcrumbs.js | 31 + .../lib/html-spa/src/filterToggle.js | 50 + .../lib/html-spa/src/flattenToggle.js | 25 + .../lib/html-spa/src/getChildData.js | 155 + .../lib/html-spa/src/index.js | 160 + .../lib/html-spa/src/routing.js | 52 + .../lib/html-spa/src/summaryHeader.js | 63 + .../lib/html-spa/src/summaryTableHeader.js | 130 + .../lib/html-spa/src/summaryTableLine.js | 159 + .../lib/html-spa/webpack.config.js | 22 + .../istanbul-reports/lib/html/annotator.js | 305 + .../istanbul-reports/lib/html/assets/base.css | 224 + .../lib/html/assets/block-navigation.js | 86 + .../lib/html/assets/favicon.png | Bin 0 -> 445 bytes .../lib/html/assets/sort-arrow-sprite.png | Bin 0 -> 138 bytes .../lib/html/assets/sorter.js | 195 + .../lib/html/assets/vendor/prettify.css | 1 + .../lib/html/assets/vendor/prettify.js | 1 + .../istanbul-reports/lib/html/index.js | 421 + .../lib/html/insertion-text.js | 114 + .../lib/json-summary/index.js | 56 + .../istanbul-reports/lib/json/index.js | 44 + .../istanbul-reports/lib/lcov/index.js | 33 + .../istanbul-reports/lib/lcovonly/index.js | 77 + .../istanbul-reports/lib/none/index.js | 10 + .../istanbul-reports/lib/teamcity/index.js | 67 + .../istanbul-reports/lib/text-lcov/index.js | 17 + .../lib/text-summary/index.js | 62 + .../istanbul-reports/lib/text/index.js | 298 + node_modules/istanbul-reports/package.json | 60 + node_modules/jest-changed-files/LICENSE | 21 + node_modules/jest-changed-files/README.md | 63 + node_modules/jest-changed-files/build/git.js | 169 + node_modules/jest-changed-files/build/hg.js | 130 + .../jest-changed-files/build/index.d.ts | 35 + .../jest-changed-files/build/index.js | 74 + .../jest-changed-files/build/types.js | 1 + node_modules/jest-changed-files/package.json | 30 + node_modules/jest-circus/LICENSE | 21 + node_modules/jest-circus/README.md | 65 + .../jest-circus/build/eventHandler.js | 271 + .../build/formatNodeAssertErrors.js | 186 + .../jest-circus/build/globalErrorHandlers.js | 44 + node_modules/jest-circus/build/index.d.ts | 72 + node_modules/jest-circus/build/index.js | 238 + .../legacy-code-todo-rewrite/jestAdapter.js | 117 + .../jestAdapterInit.js | 236 + node_modules/jest-circus/build/run.js | 282 + node_modules/jest-circus/build/state.js | 79 + .../build/testCaseReportHandler.js | 26 + node_modules/jest-circus/build/types.js | 27 + node_modules/jest-circus/build/utils.js | 480 + node_modules/jest-circus/package.json | 58 + node_modules/jest-circus/runner.js | 10 + node_modules/jest-cli/LICENSE | 21 + node_modules/jest-cli/README.md | 11 + node_modules/jest-cli/bin/jest.js | 17 + node_modules/jest-cli/build/args.js | 716 + node_modules/jest-cli/build/index.d.ts | 12 + node_modules/jest-cli/build/index.js | 12 + node_modules/jest-cli/build/init/errors.js | 34 + .../jest-cli/build/init/generateConfigFile.js | 85 + node_modules/jest-cli/build/init/index.js | 211 + .../jest-cli/build/init/modifyPackageJson.js | 26 + node_modules/jest-cli/build/init/questions.js | 76 + node_modules/jest-cli/build/init/types.js | 1 + node_modules/jest-cli/build/run.js | 227 + node_modules/jest-cli/package.json | 89 + node_modules/jest-config/LICENSE | 21 + node_modules/jest-config/build/Defaults.js | 127 + node_modules/jest-config/build/Deprecated.js | 85 + .../jest-config/build/Descriptions.js | 104 + .../build/ReporterValidationErrors.js | 122 + node_modules/jest-config/build/ValidConfig.js | 336 + node_modules/jest-config/build/color.js | 31 + node_modules/jest-config/build/constants.js | 96 + .../jest-config/build/getCacheDirectory.js | 91 + .../jest-config/build/getMaxWorkers.js | 52 + node_modules/jest-config/build/index.d.ts | 147 + node_modules/jest-config/build/index.js | 487 + node_modules/jest-config/build/normalize.js | 1175 ++ .../jest-config/build/parseShardPair.js | 41 + .../build/readConfigFileAndSetRootDir.js | 189 + .../jest-config/build/resolveConfigPath.js | 217 + node_modules/jest-config/build/setFromArgv.js | 57 + .../jest-config/build/stringToBytes.js | 79 + node_modules/jest-config/build/utils.js | 172 + .../jest-config/build/validatePattern.js | 24 + node_modules/jest-config/package.json | 70 + node_modules/jest-diff/LICENSE | 21 + node_modules/jest-diff/README.md | 671 + .../jest-diff/build/cleanupSemantic.js | 599 + node_modules/jest-diff/build/constants.js | 19 + node_modules/jest-diff/build/diffLines.js | 193 + node_modules/jest-diff/build/diffStrings.js | 66 + .../jest-diff/build/getAlignedDiffs.js | 223 + node_modules/jest-diff/build/index.d.ts | 93 + node_modules/jest-diff/build/index.js | 226 + .../jest-diff/build/joinAlignedDiffs.js | 271 + .../jest-diff/build/normalizeDiffOptions.js | 59 + node_modules/jest-diff/build/printDiffs.js | 79 + node_modules/jest-diff/build/types.js | 1 + node_modules/jest-diff/package.json | 36 + node_modules/jest-docblock/LICENSE | 21 + node_modules/jest-docblock/README.md | 108 + node_modules/jest-docblock/build/index.d.ts | 29 + node_modules/jest-docblock/build/index.js | 131 + node_modules/jest-docblock/package.json | 32 + node_modules/jest-each/LICENSE | 21 + node_modules/jest-each/README.md | 548 + node_modules/jest-each/build/bind.js | 79 + node_modules/jest-each/build/index.d.ts | 141 + node_modules/jest-each/build/index.js | 83 + node_modules/jest-each/build/table/array.js | 130 + .../jest-each/build/table/interpolation.js | 59 + .../jest-each/build/table/template.js | 42 + node_modules/jest-each/build/validation.js | 107 + node_modules/jest-each/package.json | 41 + node_modules/jest-environment-node/LICENSE | 21 + .../jest-environment-node/build/index.d.ts | 41 + .../jest-environment-node/build/index.js | 198 + .../jest-environment-node/package.json | 37 + node_modules/jest-get-type/LICENSE | 21 + node_modules/jest-get-type/build/index.d.ts | 27 + node_modules/jest-get-type/build/index.js | 53 + node_modules/jest-get-type/package.json | 27 + node_modules/jest-haste-map/LICENSE | 21 + node_modules/jest-haste-map/build/HasteFS.js | 139 + .../jest-haste-map/build/ModuleMap.js | 249 + .../jest-haste-map/build/blacklist.js | 64 + .../jest-haste-map/build/constants.js | 46 + .../jest-haste-map/build/crawlers/node.js | 269 + .../jest-haste-map/build/crawlers/watchman.js | 339 + .../jest-haste-map/build/getMockName.js | 69 + node_modules/jest-haste-map/build/index.d.ts | 241 + node_modules/jest-haste-map/build/index.js | 1110 ++ .../build/lib/dependencyExtractor.js | 84 + .../jest-haste-map/build/lib/fast_path.js | 76 + .../build/lib/getPlatformExtension.js | 30 + .../build/lib/isWatchmanInstalled.js | 37 + .../build/lib/normalizePathSep.js | 68 + node_modules/jest-haste-map/build/types.js | 1 + .../build/watchers/FSEventsWatcher.js | 244 + .../build/watchers/NodeWatcher.js | 369 + .../build/watchers/RecrawlWarning.js | 49 + .../build/watchers/WatchmanWatcher.js | 383 + .../jest-haste-map/build/watchers/common.js | 111 + node_modules/jest-haste-map/build/worker.js | 180 + node_modules/jest-haste-map/package.json | 48 + node_modules/jest-leak-detector/LICENSE | 21 + node_modules/jest-leak-detector/README.md | 27 + .../jest-leak-detector/build/index.d.ts | 19 + .../jest-leak-detector/build/index.js | 99 + node_modules/jest-leak-detector/package.json | 30 + node_modules/jest-matcher-utils/LICENSE | 21 + node_modules/jest-matcher-utils/README.md | 24 + .../jest-matcher-utils/build/Replaceable.js | 64 + .../build/deepCyclicCopyReplaceable.js | 100 + .../jest-matcher-utils/build/index.d.ts | 138 + .../jest-matcher-utils/build/index.js | 539 + node_modules/jest-matcher-utils/package.json | 37 + node_modules/jest-message-util/LICENSE | 21 + .../jest-message-util/build/index.d.ts | 67 + node_modules/jest-message-util/build/index.js | 395 + node_modules/jest-message-util/build/types.js | 1 + node_modules/jest-message-util/package.json | 42 + node_modules/jest-mock/LICENSE | 21 + node_modules/jest-mock/README.md | 106 + node_modules/jest-mock/build/index.d.ts | 380 + node_modules/jest-mock/build/index.js | 823 + node_modules/jest-mock/package.json | 35 + node_modules/jest-pnp-resolver/README.md | 34 + .../jest-pnp-resolver/createRequire.js | 25 + .../jest-pnp-resolver/getDefaultResolver.js | 13 + node_modules/jest-pnp-resolver/index.d.ts | 10 + node_modules/jest-pnp-resolver/index.js | 50 + node_modules/jest-pnp-resolver/package.json | 31 + node_modules/jest-regex-util/LICENSE | 21 + node_modules/jest-regex-util/build/index.d.ts | 20 + node_modules/jest-regex-util/build/index.js | 40 + node_modules/jest-regex-util/package.json | 29 + .../jest-resolve-dependencies/LICENSE | 21 + .../build/index.d.ts | 43 + .../jest-resolve-dependencies/build/index.js | 197 + .../jest-resolve-dependencies/package.json | 37 + node_modules/jest-resolve/LICENSE | 21 + .../jest-resolve/build/ModuleNotFoundError.js | 108 + .../jest-resolve/build/defaultResolver.js | 152 + .../jest-resolve/build/fileWalkers.js | 178 + node_modules/jest-resolve/build/index.d.ts | 319 + node_modules/jest-resolve/build/index.js | 31 + .../jest-resolve/build/isBuiltinModule.js | 27 + .../jest-resolve/build/nodeModulesPaths.js | 117 + node_modules/jest-resolve/build/resolver.js | 789 + .../jest-resolve/build/shouldLoadAsEsm.js | 90 + node_modules/jest-resolve/build/types.js | 1 + node_modules/jest-resolve/build/utils.js | 233 + node_modules/jest-resolve/package.json | 44 + node_modules/jest-runner/LICENSE | 21 + node_modules/jest-runner/build/index.d.ts | 127 + node_modules/jest-runner/build/index.js | 218 + node_modules/jest-runner/build/runTest.js | 462 + node_modules/jest-runner/build/testWorker.js | 123 + node_modules/jest-runner/build/types.js | 29 + node_modules/jest-runner/package.json | 57 + node_modules/jest-runtime/LICENSE | 21 + node_modules/jest-runtime/build/helpers.js | 134 + node_modules/jest-runtime/build/index.d.ts | 191 + node_modules/jest-runtime/build/index.js | 2180 +++ node_modules/jest-runtime/package.json | 56 + node_modules/jest-snapshot/LICENSE | 21 + .../jest-snapshot/build/InlineSnapshots.js | 416 + .../jest-snapshot/build/SnapshotResolver.js | 153 + node_modules/jest-snapshot/build/State.js | 282 + node_modules/jest-snapshot/build/colors.js | 39 + .../jest-snapshot/build/dedentLines.js | 132 + node_modules/jest-snapshot/build/index.d.ts | 182 + node_modules/jest-snapshot/build/index.js | 583 + .../jest-snapshot/build/mockSerializer.js | 47 + node_modules/jest-snapshot/build/plugins.js | 43 + .../jest-snapshot/build/printSnapshot.js | 340 + node_modules/jest-snapshot/build/types.js | 1 + node_modules/jest-snapshot/build/utils.js | 310 + .../jest-snapshot/node_modules/.bin/semver | 1 + .../node_modules/lru-cache/LICENSE | 15 + .../node_modules/lru-cache/README.md | 166 + .../node_modules/lru-cache/index.js | 334 + .../node_modules/lru-cache/package.json | 34 + .../jest-snapshot/node_modules/semver/LICENSE | 15 + .../node_modules/semver/README.md | 568 + .../node_modules/semver/bin/semver.js | 183 + .../node_modules/semver/classes/comparator.js | 136 + .../node_modules/semver/classes/index.js | 5 + .../node_modules/semver/classes/range.js | 522 + .../node_modules/semver/classes/semver.js | 287 + .../node_modules/semver/functions/clean.js | 6 + .../node_modules/semver/functions/cmp.js | 52 + .../node_modules/semver/functions/coerce.js | 52 + .../semver/functions/compare-build.js | 7 + .../semver/functions/compare-loose.js | 3 + .../node_modules/semver/functions/compare.js | 5 + .../node_modules/semver/functions/diff.js | 23 + .../node_modules/semver/functions/eq.js | 3 + .../node_modules/semver/functions/gt.js | 3 + .../node_modules/semver/functions/gte.js | 3 + .../node_modules/semver/functions/inc.js | 18 + .../node_modules/semver/functions/lt.js | 3 + .../node_modules/semver/functions/lte.js | 3 + .../node_modules/semver/functions/major.js | 3 + .../node_modules/semver/functions/minor.js | 3 + .../node_modules/semver/functions/neq.js | 3 + .../node_modules/semver/functions/parse.js | 33 + .../node_modules/semver/functions/patch.js | 3 + .../semver/functions/prerelease.js | 6 + .../node_modules/semver/functions/rcompare.js | 3 + .../node_modules/semver/functions/rsort.js | 3 + .../semver/functions/satisfies.js | 10 + .../node_modules/semver/functions/sort.js | 3 + .../node_modules/semver/functions/valid.js | 6 + .../node_modules/semver/index.js | 88 + .../node_modules/semver/internal/constants.js | 17 + .../node_modules/semver/internal/debug.js | 9 + .../semver/internal/identifiers.js | 23 + .../semver/internal/parse-options.js | 11 + .../node_modules/semver/internal/re.js | 182 + .../node_modules/semver/package.json | 86 + .../node_modules/semver/preload.js | 2 + .../node_modules/semver/range.bnf | 16 + .../node_modules/semver/ranges/gtr.js | 4 + .../node_modules/semver/ranges/intersects.js | 7 + .../node_modules/semver/ranges/ltr.js | 4 + .../semver/ranges/max-satisfying.js | 25 + .../semver/ranges/min-satisfying.js | 24 + .../node_modules/semver/ranges/min-version.js | 61 + .../node_modules/semver/ranges/outside.js | 80 + .../node_modules/semver/ranges/simplify.js | 47 + .../node_modules/semver/ranges/subset.js | 244 + .../semver/ranges/to-comparators.js | 8 + .../node_modules/semver/ranges/valid.js | 11 + .../node_modules/yallist/LICENSE | 15 + .../node_modules/yallist/README.md | 204 + .../node_modules/yallist/iterator.js | 8 + .../node_modules/yallist/package.json | 29 + .../node_modules/yallist/yallist.js | 426 + node_modules/jest-snapshot/package.json | 65 + node_modules/jest-util/LICENSE | 21 + .../jest-util/build/ErrorWithStack.js | 28 + node_modules/jest-util/build/clearLine.js | 18 + .../build/convertDescriptorToString.js | 30 + .../jest-util/build/createDirectory.js | 71 + .../jest-util/build/createProcessObject.js | 109 + .../jest-util/build/deepCyclicCopy.js | 76 + node_modules/jest-util/build/formatTime.js | 24 + .../jest-util/build/globsToMatcher.js | 98 + node_modules/jest-util/build/index.d.ts | 125 + node_modules/jest-util/build/index.js | 185 + .../jest-util/build/installCommonGlobals.js | 115 + .../jest-util/build/interopRequireDefault.js | 22 + node_modules/jest-util/build/isInteractive.js | 22 + node_modules/jest-util/build/isPromise.js | 20 + node_modules/jest-util/build/pluralize.js | 16 + node_modules/jest-util/build/preRunMessage.js | 38 + .../jest-util/build/replacePathSepForGlob.js | 16 + .../jest-util/build/requireOrImportModule.js | 77 + node_modules/jest-util/build/setGlobal.js | 17 + node_modules/jest-util/build/specialChars.js | 25 + .../build/testPathPatternToRegExp.js | 19 + node_modules/jest-util/build/tryRealpath.js | 30 + node_modules/jest-util/package.json | 38 + node_modules/jest-validate/LICENSE | 21 + node_modules/jest-validate/README.md | 196 + node_modules/jest-validate/build/condition.js | 44 + .../jest-validate/build/defaultConfig.js | 37 + .../jest-validate/build/deprecated.js | 28 + node_modules/jest-validate/build/errors.js | 64 + .../jest-validate/build/exampleConfig.js | 38 + node_modules/jest-validate/build/index.d.ts | 89 + node_modules/jest-validate/build/index.js | 56 + node_modules/jest-validate/build/types.js | 1 + node_modules/jest-validate/build/utils.js | 100 + node_modules/jest-validate/build/validate.js | 117 + .../jest-validate/build/validateCLIOptions.js | 118 + node_modules/jest-validate/build/warnings.js | 41 + .../node_modules/camelcase/index.d.ts | 103 + .../node_modules/camelcase/index.js | 113 + .../node_modules/camelcase/license | 9 + .../node_modules/camelcase/package.json | 44 + .../node_modules/camelcase/readme.md | 144 + node_modules/jest-validate/package.json | 37 + node_modules/jest-watcher/LICENSE | 21 + .../jest-watcher/build/BaseWatchPlugin.js | 35 + node_modules/jest-watcher/build/JestHooks.js | 63 + .../jest-watcher/build/PatternPrompt.js | 74 + .../jest-watcher/build/TestWatcher.js | 45 + node_modules/jest-watcher/build/constants.js | 27 + node_modules/jest-watcher/build/index.d.ts | 222 + node_modules/jest-watcher/build/index.js | 74 + node_modules/jest-watcher/build/lib/Prompt.js | 113 + .../jest-watcher/build/lib/colorize.js | 30 + .../build/lib/formatTestNameByPattern.js | 67 + .../build/lib/patternModeHelpers.js | 54 + node_modules/jest-watcher/build/lib/scroll.js | 31 + node_modules/jest-watcher/build/types.js | 1 + node_modules/jest-watcher/package.json | 41 + node_modules/jest-worker/LICENSE | 21 + node_modules/jest-worker/README.md | 266 + node_modules/jest-worker/build/Farm.js | 152 + node_modules/jest-worker/build/FifoQueue.js | 89 + .../jest-worker/build/PriorityQueue.js | 137 + node_modules/jest-worker/build/WorkerPool.js | 33 + .../jest-worker/build/base/BaseWorkerPool.js | 116 + node_modules/jest-worker/build/index.d.ts | 348 + node_modules/jest-worker/build/index.js | 172 + node_modules/jest-worker/build/types.js | 61 + .../build/workers/ChildProcessWorker.js | 486 + .../build/workers/NodeThreadsWorker.js | 356 + .../build/workers/WorkerAbstract.js | 135 + .../build/workers/messageParent.js | 33 + .../jest-worker/build/workers/processChild.js | 140 + .../jest-worker/build/workers/threadChild.js | 148 + .../node_modules/supports-color/browser.js | 24 + .../node_modules/supports-color/index.js | 152 + .../node_modules/supports-color/license | 9 + .../node_modules/supports-color/package.json | 58 + .../node_modules/supports-color/readme.md | 77 + node_modules/jest-worker/package.json | 41 + node_modules/jest/LICENSE | 21 + node_modules/jest/README.md | 11 + node_modules/jest/bin/jest.js | 13 + node_modules/jest/build/index.d.ts | 26 + node_modules/jest/build/index.js | 49 + node_modules/jest/package.json | 74 + node_modules/js-tokens/CHANGELOG.md | 151 + node_modules/js-tokens/LICENSE | 21 + node_modules/js-tokens/README.md | 240 + node_modules/js-tokens/index.js | 23 + node_modules/js-tokens/package.json | 30 + node_modules/js-yaml/CHANGELOG.md | 557 + node_modules/js-yaml/LICENSE | 21 + node_modules/js-yaml/README.md | 299 + node_modules/js-yaml/bin/js-yaml.js | 132 + node_modules/js-yaml/dist/js-yaml.js | 3989 +++++ node_modules/js-yaml/dist/js-yaml.min.js | 1 + node_modules/js-yaml/index.js | 7 + node_modules/js-yaml/lib/js-yaml.js | 39 + node_modules/js-yaml/lib/js-yaml/common.js | 59 + node_modules/js-yaml/lib/js-yaml/dumper.js | 850 + node_modules/js-yaml/lib/js-yaml/exception.js | 43 + node_modules/js-yaml/lib/js-yaml/loader.js | 1644 ++ node_modules/js-yaml/lib/js-yaml/mark.js | 76 + node_modules/js-yaml/lib/js-yaml/schema.js | 108 + .../js-yaml/lib/js-yaml/schema/core.js | 18 + .../lib/js-yaml/schema/default_full.js | 25 + .../lib/js-yaml/schema/default_safe.js | 28 + .../js-yaml/lib/js-yaml/schema/failsafe.js | 17 + .../js-yaml/lib/js-yaml/schema/json.js | 25 + node_modules/js-yaml/lib/js-yaml/type.js | 61 + .../js-yaml/lib/js-yaml/type/binary.js | 138 + node_modules/js-yaml/lib/js-yaml/type/bool.js | 35 + .../js-yaml/lib/js-yaml/type/float.js | 116 + node_modules/js-yaml/lib/js-yaml/type/int.js | 173 + .../js-yaml/lib/js-yaml/type/js/function.js | 93 + .../js-yaml/lib/js-yaml/type/js/regexp.js | 60 + .../js-yaml/lib/js-yaml/type/js/undefined.js | 28 + node_modules/js-yaml/lib/js-yaml/type/map.js | 8 + .../js-yaml/lib/js-yaml/type/merge.js | 12 + node_modules/js-yaml/lib/js-yaml/type/null.js | 34 + node_modules/js-yaml/lib/js-yaml/type/omap.js | 44 + .../js-yaml/lib/js-yaml/type/pairs.js | 53 + node_modules/js-yaml/lib/js-yaml/type/seq.js | 8 + node_modules/js-yaml/lib/js-yaml/type/set.js | 29 + node_modules/js-yaml/lib/js-yaml/type/str.js | 8 + .../js-yaml/lib/js-yaml/type/timestamp.js | 88 + node_modules/js-yaml/package.json | 49 + node_modules/jsdom/LICENSE.txt | 0 node_modules/jsdom/README.md | 0 node_modules/jsdom/lib/api.js | 0 .../jsdom/lib/jsdom/browser/Window.js | 0 .../lib/jsdom/browser/default-stylesheet.js | 0 .../jsdom/lib/jsdom/browser/js-globals.json | 0 .../lib/jsdom/browser/not-implemented.js | 0 .../jsdom/lib/jsdom/browser/parser/html.js | 0 .../jsdom/lib/jsdom/browser/parser/index.js | 0 .../jsdom/lib/jsdom/browser/parser/xml.js | 0 .../browser/resources/async-resource-queue.js | 0 .../resources/no-op-resource-loader.js | 0 .../resources/per-document-resource-loader.js | 0 .../browser/resources/request-manager.js | 0 .../browser/resources/resource-loader.js | 0 .../jsdom/browser/resources/resource-queue.js | 0 node_modules/jsdom/lib/jsdom/level2/style.js | 0 node_modules/jsdom/lib/jsdom/level3/xpath.js | 0 .../living/aborting/AbortController-impl.js | 0 .../jsdom/living/aborting/AbortSignal-impl.js | 0 .../jsdom/lib/jsdom/living/attributes.js | 0 .../lib/jsdom/living/attributes/Attr-impl.js | 0 .../living/attributes/NamedNodeMap-impl.js | 0 .../DefaultConstraintValidation-impl.js | 0 .../ValidityState-impl.js | 0 .../jsdom/living/cssom/StyleSheetList-impl.js | 0 .../CustomElementRegistry-impl.js | 0 .../jsdom/lib/jsdom/living/documents.js | 0 .../jsdom/living/domparsing/DOMParser-impl.js | 0 .../jsdom/living/domparsing/InnerHTML-impl.js | 0 .../living/domparsing/XMLSerializer-impl.js | 0 .../parse5-adapter-serialization.js | 0 .../jsdom/living/domparsing/serialization.js | 0 .../jsdom/living/events/CloseEvent-impl.js | 0 .../living/events/CompositionEvent-impl.js | 0 .../jsdom/living/events/CustomEvent-impl.js | 0 .../jsdom/living/events/ErrorEvent-impl.js | 0 .../lib/jsdom/living/events/Event-impl.js | 0 .../living/events/EventModifierMixin-impl.js | 0 .../jsdom/living/events/EventTarget-impl.js | 0 .../jsdom/living/events/FocusEvent-impl.js | 0 .../living/events/HashChangeEvent-impl.js | 0 .../jsdom/living/events/InputEvent-impl.js | 0 .../jsdom/living/events/KeyboardEvent-impl.js | 0 .../jsdom/living/events/MessageEvent-impl.js | 0 .../jsdom/living/events/MouseEvent-impl.js | 0 .../living/events/PageTransitionEvent-impl.js | 0 .../jsdom/living/events/PopStateEvent-impl.js | 0 .../jsdom/living/events/ProgressEvent-impl.js | 0 .../jsdom/living/events/StorageEvent-impl.js | 0 .../jsdom/living/events/TouchEvent-impl.js | 0 .../lib/jsdom/living/events/UIEvent-impl.js | 0 .../jsdom/living/events/WheelEvent-impl.js | 0 .../lib/jsdom/living/fetch/Headers-impl.js | 0 .../lib/jsdom/living/fetch/header-list.js | 0 .../lib/jsdom/living/fetch/header-types.js | 0 .../lib/jsdom/living/file-api/Blob-impl.js | 0 .../lib/jsdom/living/file-api/File-impl.js | 0 .../jsdom/living/file-api/FileList-impl.js | 0 .../jsdom/living/file-api/FileReader-impl.js | 0 .../jsdom/living/generated/AbortController.js | 0 .../lib/jsdom/living/generated/AbortSignal.js | 0 .../jsdom/living/generated/AbstractRange.js | 0 .../generated/AddEventListenerOptions.js | 0 .../living/generated/AssignedNodesOptions.js | 0 .../jsdom/lib/jsdom/living/generated/Attr.js | 0 .../lib/jsdom/living/generated/BarProp.js | 0 .../lib/jsdom/living/generated/BinaryType.js | 0 .../jsdom/lib/jsdom/living/generated/Blob.js | 0 .../jsdom/living/generated/BlobCallback.js | 0 .../jsdom/living/generated/BlobPropertyBag.js | 0 .../jsdom/living/generated/CDATASection.js | 0 .../living/generated/CanPlayTypeResult.js | 0 .../jsdom/living/generated/CharacterData.js | 0 .../lib/jsdom/living/generated/CloseEvent.js | 0 .../jsdom/living/generated/CloseEventInit.js | 0 .../lib/jsdom/living/generated/Comment.js | 0 .../living/generated/CompositionEvent.js | 0 .../living/generated/CompositionEventInit.js | 0 .../generated/CustomElementConstructor.js | 0 .../living/generated/CustomElementRegistry.js | 0 .../lib/jsdom/living/generated/CustomEvent.js | 0 .../jsdom/living/generated/CustomEventInit.js | 0 .../living/generated/DOMImplementation.js | 0 .../lib/jsdom/living/generated/DOMParser.js | 0 .../jsdom/living/generated/DOMStringMap.js | 0 .../jsdom/living/generated/DOMTokenList.js | 0 .../lib/jsdom/living/generated/Document.js | 0 .../living/generated/DocumentFragment.js | 0 .../living/generated/DocumentReadyState.js | 0 .../jsdom/living/generated/DocumentType.js | 0 .../lib/jsdom/living/generated/Element.js | 0 .../generated/ElementCreationOptions.js | 0 .../generated/ElementDefinitionOptions.js | 0 .../lib/jsdom/living/generated/EndingType.js | 0 .../lib/jsdom/living/generated/ErrorEvent.js | 0 .../jsdom/living/generated/ErrorEventInit.js | 0 .../jsdom/lib/jsdom/living/generated/Event.js | 0 .../living/generated/EventHandlerNonNull.js | 0 .../lib/jsdom/living/generated/EventInit.js | 0 .../jsdom/living/generated/EventListener.js | 0 .../living/generated/EventListenerOptions.js | 0 .../living/generated/EventModifierInit.js | 0 .../lib/jsdom/living/generated/EventTarget.js | 0 .../lib/jsdom/living/generated/External.js | 0 .../jsdom/lib/jsdom/living/generated/File.js | 0 .../lib/jsdom/living/generated/FileList.js | 0 .../jsdom/living/generated/FilePropertyBag.js | 0 .../lib/jsdom/living/generated/FileReader.js | 0 .../lib/jsdom/living/generated/FocusEvent.js | 0 .../jsdom/living/generated/FocusEventInit.js | 0 .../lib/jsdom/living/generated/FormData.js | 0 .../lib/jsdom/living/generated/Function.js | 0 .../living/generated/GetRootNodeOptions.js | 0 .../living/generated/HTMLAnchorElement.js | 0 .../jsdom/living/generated/HTMLAreaElement.js | 0 .../living/generated/HTMLAudioElement.js | 0 .../jsdom/living/generated/HTMLBRElement.js | 0 .../jsdom/living/generated/HTMLBaseElement.js | 0 .../jsdom/living/generated/HTMLBodyElement.js | 0 .../living/generated/HTMLButtonElement.js | 0 .../living/generated/HTMLCanvasElement.js | 0 .../jsdom/living/generated/HTMLCollection.js | 0 .../living/generated/HTMLDListElement.js | 0 .../jsdom/living/generated/HTMLDataElement.js | 0 .../living/generated/HTMLDataListElement.js | 0 .../living/generated/HTMLDetailsElement.js | 0 .../living/generated/HTMLDialogElement.js | 0 .../living/generated/HTMLDirectoryElement.js | 0 .../jsdom/living/generated/HTMLDivElement.js | 0 .../lib/jsdom/living/generated/HTMLElement.js | 0 .../living/generated/HTMLEmbedElement.js | 0 .../living/generated/HTMLFieldSetElement.js | 0 .../jsdom/living/generated/HTMLFontElement.js | 0 .../jsdom/living/generated/HTMLFormElement.js | 0 .../living/generated/HTMLFrameElement.js | 0 .../living/generated/HTMLFrameSetElement.js | 0 .../jsdom/living/generated/HTMLHRElement.js | 0 .../jsdom/living/generated/HTMLHeadElement.js | 0 .../living/generated/HTMLHeadingElement.js | 0 .../jsdom/living/generated/HTMLHtmlElement.js | 0 .../living/generated/HTMLIFrameElement.js | 0 .../living/generated/HTMLImageElement.js | 0 .../living/generated/HTMLInputElement.js | 0 .../jsdom/living/generated/HTMLLIElement.js | 0 .../living/generated/HTMLLabelElement.js | 0 .../living/generated/HTMLLegendElement.js | 0 .../jsdom/living/generated/HTMLLinkElement.js | 0 .../jsdom/living/generated/HTMLMapElement.js | 0 .../living/generated/HTMLMarqueeElement.js | 0 .../living/generated/HTMLMediaElement.js | 0 .../jsdom/living/generated/HTMLMenuElement.js | 0 .../jsdom/living/generated/HTMLMetaElement.js | 0 .../living/generated/HTMLMeterElement.js | 0 .../jsdom/living/generated/HTMLModElement.js | 0 .../living/generated/HTMLOListElement.js | 0 .../living/generated/HTMLObjectElement.js | 0 .../living/generated/HTMLOptGroupElement.js | 0 .../living/generated/HTMLOptionElement.js | 0 .../living/generated/HTMLOptionsCollection.js | 0 .../living/generated/HTMLOutputElement.js | 0 .../living/generated/HTMLParagraphElement.js | 0 .../living/generated/HTMLParamElement.js | 0 .../living/generated/HTMLPictureElement.js | 0 .../jsdom/living/generated/HTMLPreElement.js | 0 .../living/generated/HTMLProgressElement.js | 0 .../living/generated/HTMLQuoteElement.js | 0 .../living/generated/HTMLScriptElement.js | 0 .../living/generated/HTMLSelectElement.js | 0 .../jsdom/living/generated/HTMLSlotElement.js | 0 .../living/generated/HTMLSourceElement.js | 0 .../jsdom/living/generated/HTMLSpanElement.js | 0 .../living/generated/HTMLStyleElement.js | 0 .../generated/HTMLTableCaptionElement.js | 0 .../living/generated/HTMLTableCellElement.js | 0 .../living/generated/HTMLTableColElement.js | 0 .../living/generated/HTMLTableElement.js | 0 .../living/generated/HTMLTableRowElement.js | 0 .../generated/HTMLTableSectionElement.js | 0 .../living/generated/HTMLTemplateElement.js | 0 .../living/generated/HTMLTextAreaElement.js | 0 .../jsdom/living/generated/HTMLTimeElement.js | 0 .../living/generated/HTMLTitleElement.js | 0 .../living/generated/HTMLTrackElement.js | 0 .../living/generated/HTMLUListElement.js | 0 .../living/generated/HTMLUnknownElement.js | 0 .../living/generated/HTMLVideoElement.js | 0 .../jsdom/living/generated/HashChangeEvent.js | 0 .../living/generated/HashChangeEventInit.js | 0 .../lib/jsdom/living/generated/Headers.js | 0 .../lib/jsdom/living/generated/History.js | 0 .../lib/jsdom/living/generated/InputEvent.js | 0 .../jsdom/living/generated/InputEventInit.js | 0 .../jsdom/living/generated/KeyboardEvent.js | 0 .../living/generated/KeyboardEventInit.js | 0 .../lib/jsdom/living/generated/Location.js | 0 .../jsdom/living/generated/MessageEvent.js | 0 .../living/generated/MessageEventInit.js | 0 .../lib/jsdom/living/generated/MimeType.js | 0 .../jsdom/living/generated/MimeTypeArray.js | 0 .../lib/jsdom/living/generated/MouseEvent.js | 0 .../jsdom/living/generated/MouseEventInit.js | 0 .../living/generated/MutationCallback.js | 0 .../living/generated/MutationObserver.js | 0 .../living/generated/MutationObserverInit.js | 0 .../jsdom/living/generated/MutationRecord.js | 0 .../jsdom/living/generated/NamedNodeMap.js | 0 .../lib/jsdom/living/generated/Navigator.js | 0 .../jsdom/lib/jsdom/living/generated/Node.js | 0 .../lib/jsdom/living/generated/NodeFilter.js | 0 .../jsdom/living/generated/NodeIterator.js | 0 .../lib/jsdom/living/generated/NodeList.js | 0 .../OnBeforeUnloadEventHandlerNonNull.js | 0 .../generated/OnErrorEventHandlerNonNull.js | 0 .../living/generated/PageTransitionEvent.js | 0 .../generated/PageTransitionEventInit.js | 0 .../lib/jsdom/living/generated/Performance.js | 0 .../lib/jsdom/living/generated/Plugin.js | 0 .../lib/jsdom/living/generated/PluginArray.js | 0 .../jsdom/living/generated/PopStateEvent.js | 0 .../living/generated/PopStateEventInit.js | 0 .../living/generated/ProcessingInstruction.js | 0 .../jsdom/living/generated/ProgressEvent.js | 0 .../living/generated/ProgressEventInit.js | 0 .../jsdom/lib/jsdom/living/generated/Range.js | 0 .../living/generated/SVGAnimatedString.js | 0 .../living/generated/SVGBoundingBoxOptions.js | 0 .../lib/jsdom/living/generated/SVGElement.js | 0 .../living/generated/SVGGraphicsElement.js | 0 .../lib/jsdom/living/generated/SVGNumber.js | 0 .../jsdom/living/generated/SVGSVGElement.js | 0 .../jsdom/living/generated/SVGStringList.js | 0 .../jsdom/living/generated/SVGTitleElement.js | 0 .../lib/jsdom/living/generated/Screen.js | 0 .../jsdom/living/generated/ScrollBehavior.js | 0 .../living/generated/ScrollIntoViewOptions.js | 0 .../living/generated/ScrollLogicalPosition.js | 0 .../jsdom/living/generated/ScrollOptions.js | 0 .../living/generated/ScrollRestoration.js | 0 .../lib/jsdom/living/generated/Selection.js | 0 .../jsdom/living/generated/SelectionMode.js | 0 .../lib/jsdom/living/generated/ShadowRoot.js | 0 .../jsdom/living/generated/ShadowRootInit.js | 0 .../jsdom/living/generated/ShadowRootMode.js | 0 .../lib/jsdom/living/generated/StaticRange.js | 0 .../jsdom/living/generated/StaticRangeInit.js | 0 .../lib/jsdom/living/generated/Storage.js | 0 .../jsdom/living/generated/StorageEvent.js | 0 .../living/generated/StorageEventInit.js | 0 .../jsdom/living/generated/StyleSheetList.js | 0 .../jsdom/living/generated/SupportedType.js | 0 .../jsdom/lib/jsdom/living/generated/Text.js | 0 .../jsdom/living/generated/TextTrackKind.js | 0 .../lib/jsdom/living/generated/TouchEvent.js | 0 .../jsdom/living/generated/TouchEventInit.js | 0 .../lib/jsdom/living/generated/TreeWalker.js | 0 .../lib/jsdom/living/generated/UIEvent.js | 0 .../lib/jsdom/living/generated/UIEventInit.js | 0 .../jsdom/living/generated/ValidityState.js | 0 .../jsdom/living/generated/VisibilityState.js | 0 .../jsdom/living/generated/VoidFunction.js | 0 .../lib/jsdom/living/generated/WebSocket.js | 0 .../lib/jsdom/living/generated/WheelEvent.js | 0 .../jsdom/living/generated/WheelEventInit.js | 0 .../lib/jsdom/living/generated/XMLDocument.js | 0 .../jsdom/living/generated/XMLHttpRequest.js | 0 .../generated/XMLHttpRequestEventTarget.js | 0 .../generated/XMLHttpRequestResponseType.js | 0 .../living/generated/XMLHttpRequestUpload.js | 0 .../jsdom/living/generated/XMLSerializer.js | 0 .../jsdom/lib/jsdom/living/generated/utils.js | 0 .../lib/jsdom/living/helpers/agent-factory.js | 0 .../lib/jsdom/living/helpers/binary-data.js | 0 .../jsdom/living/helpers/create-element.js | 0 .../living/helpers/create-event-accessor.js | 0 .../jsdom/living/helpers/custom-elements.js | 0 .../jsdom/living/helpers/dates-and-times.js | 0 .../jsdom/lib/jsdom/living/helpers/details.js | 0 .../jsdom/living/helpers/document-base-url.js | 0 .../jsdom/lib/jsdom/living/helpers/events.js | 0 .../lib/jsdom/living/helpers/focusing.js | 0 .../lib/jsdom/living/helpers/form-controls.js | 0 .../jsdom/living/helpers/html-constructor.js | 0 .../lib/jsdom/living/helpers/http-request.js | 0 .../living/helpers/internal-constants.js | 0 .../jsdom/living/helpers/iterable-weak-set.js | 0 .../jsdom/lib/jsdom/living/helpers/json.js | 0 .../living/helpers/mutation-observers.js | 0 .../lib/jsdom/living/helpers/namespaces.js | 0 .../jsdom/lib/jsdom/living/helpers/node.js | 0 .../living/helpers/number-and-date-inputs.js | 0 .../lib/jsdom/living/helpers/ordered-set.js | 0 .../living/helpers/runtime-script-errors.js | 0 .../lib/jsdom/living/helpers/selectors.js | 0 .../lib/jsdom/living/helpers/shadow-dom.js | 0 .../jsdom/lib/jsdom/living/helpers/strings.js | 0 .../lib/jsdom/living/helpers/style-rules.js | 0 .../lib/jsdom/living/helpers/stylesheets.js | 0 .../jsdom/living/helpers/svg/basic-types.js | 0 .../lib/jsdom/living/helpers/svg/render.js | 0 .../jsdom/lib/jsdom/living/helpers/text.js | 0 .../lib/jsdom/living/helpers/traversal.js | 0 .../jsdom/living/helpers/validate-names.js | 0 .../jsdom/living/hr-time/Performance-impl.js | 0 .../jsdom/lib/jsdom/living/interfaces.js | 0 .../MutationObserver-impl.js | 0 .../mutation-observer/MutationRecord-impl.js | 0 .../jsdom/living/named-properties-window.js | 0 .../jsdom/living/navigator/MimeType-impl.js | 0 .../living/navigator/MimeTypeArray-impl.js | 0 .../jsdom/living/navigator/Navigator-impl.js | 0 .../NavigatorConcurrentHardware-impl.js | 0 .../living/navigator/NavigatorCookies-impl.js | 0 .../living/navigator/NavigatorID-impl.js | 0 .../navigator/NavigatorLanguage-impl.js | 0 .../living/navigator/NavigatorOnLine-impl.js | 0 .../living/navigator/NavigatorPlugins-impl.js | 0 .../lib/jsdom/living/navigator/Plugin-impl.js | 0 .../living/navigator/PluginArray-impl.js | 0 .../jsdom/living/node-document-position.js | 0 .../jsdom/lib/jsdom/living/node-type.js | 0 node_modules/jsdom/lib/jsdom/living/node.js | 0 .../jsdom/living/nodes/CDATASection-impl.js | 0 .../jsdom/living/nodes/CharacterData-impl.js | 0 .../lib/jsdom/living/nodes/ChildNode-impl.js | 0 .../lib/jsdom/living/nodes/Comment-impl.js | 0 .../living/nodes/DOMImplementation-impl.js | 0 .../jsdom/living/nodes/DOMStringMap-impl.js | 0 .../jsdom/living/nodes/DOMTokenList-impl.js | 0 .../lib/jsdom/living/nodes/Document-impl.js | 0 .../living/nodes/DocumentFragment-impl.js | 0 .../living/nodes/DocumentOrShadowRoot-impl.js | 0 .../jsdom/living/nodes/DocumentType-impl.js | 0 .../lib/jsdom/living/nodes/Element-impl.js | 0 .../nodes/ElementCSSInlineStyle-impl.js | 0 .../nodes/ElementContentEditable-impl.js | 0 .../living/nodes/GlobalEventHandlers-impl.js | 0 .../living/nodes/HTMLAnchorElement-impl.js | 0 .../living/nodes/HTMLAreaElement-impl.js | 0 .../living/nodes/HTMLAudioElement-impl.js | 0 .../jsdom/living/nodes/HTMLBRElement-impl.js | 0 .../living/nodes/HTMLBaseElement-impl.js | 0 .../living/nodes/HTMLBodyElement-impl.js | 0 .../living/nodes/HTMLButtonElement-impl.js | 0 .../living/nodes/HTMLCanvasElement-impl.js | 0 .../jsdom/living/nodes/HTMLCollection-impl.js | 0 .../living/nodes/HTMLDListElement-impl.js | 0 .../living/nodes/HTMLDataElement-impl.js | 0 .../living/nodes/HTMLDataListElement-impl.js | 0 .../living/nodes/HTMLDetailsElement-impl.js | 0 .../living/nodes/HTMLDialogElement-impl.js | 0 .../living/nodes/HTMLDirectoryElement-impl.js | 0 .../jsdom/living/nodes/HTMLDivElement-impl.js | 0 .../jsdom/living/nodes/HTMLElement-impl.js | 0 .../living/nodes/HTMLEmbedElement-impl.js | 0 .../living/nodes/HTMLFieldSetElement-impl.js | 0 .../living/nodes/HTMLFontElement-impl.js | 0 .../living/nodes/HTMLFormElement-impl.js | 0 .../living/nodes/HTMLFrameElement-impl.js | 0 .../living/nodes/HTMLFrameSetElement-impl.js | 0 .../jsdom/living/nodes/HTMLHRElement-impl.js | 0 .../living/nodes/HTMLHeadElement-impl.js | 0 .../living/nodes/HTMLHeadingElement-impl.js | 0 .../living/nodes/HTMLHtmlElement-impl.js | 0 .../nodes/HTMLHyperlinkElementUtils-impl.js | 0 .../living/nodes/HTMLIFrameElement-impl.js | 0 .../living/nodes/HTMLImageElement-impl.js | 0 .../living/nodes/HTMLInputElement-impl.js | 0 .../jsdom/living/nodes/HTMLLIElement-impl.js | 0 .../living/nodes/HTMLLabelElement-impl.js | 0 .../living/nodes/HTMLLegendElement-impl.js | 0 .../living/nodes/HTMLLinkElement-impl.js | 0 .../jsdom/living/nodes/HTMLMapElement-impl.js | 0 .../living/nodes/HTMLMarqueeElement-impl.js | 0 .../living/nodes/HTMLMediaElement-impl.js | 0 .../living/nodes/HTMLMenuElement-impl.js | 0 .../living/nodes/HTMLMetaElement-impl.js | 0 .../living/nodes/HTMLMeterElement-impl.js | 0 .../jsdom/living/nodes/HTMLModElement-impl.js | 0 .../living/nodes/HTMLOListElement-impl.js | 0 .../living/nodes/HTMLObjectElement-impl.js | 0 .../living/nodes/HTMLOptGroupElement-impl.js | 0 .../living/nodes/HTMLOptionElement-impl.js | 0 .../nodes/HTMLOptionsCollection-impl.js | 0 .../living/nodes/HTMLOrSVGElement-impl.js | 0 .../living/nodes/HTMLOutputElement-impl.js | 0 .../living/nodes/HTMLParagraphElement-impl.js | 0 .../living/nodes/HTMLParamElement-impl.js | 0 .../living/nodes/HTMLPictureElement-impl.js | 0 .../jsdom/living/nodes/HTMLPreElement-impl.js | 0 .../living/nodes/HTMLProgressElement-impl.js | 0 .../living/nodes/HTMLQuoteElement-impl.js | 0 .../living/nodes/HTMLScriptElement-impl.js | 0 .../living/nodes/HTMLSelectElement-impl.js | 0 .../living/nodes/HTMLSlotElement-impl.js | 0 .../living/nodes/HTMLSourceElement-impl.js | 0 .../living/nodes/HTMLSpanElement-impl.js | 0 .../living/nodes/HTMLStyleElement-impl.js | 0 .../nodes/HTMLTableCaptionElement-impl.js | 0 .../living/nodes/HTMLTableCellElement-impl.js | 0 .../living/nodes/HTMLTableColElement-impl.js | 0 .../living/nodes/HTMLTableElement-impl.js | 0 .../living/nodes/HTMLTableRowElement-impl.js | 0 .../nodes/HTMLTableSectionElement-impl.js | 0 .../living/nodes/HTMLTemplateElement-impl.js | 0 .../living/nodes/HTMLTextAreaElement-impl.js | 0 .../living/nodes/HTMLTimeElement-impl.js | 0 .../living/nodes/HTMLTitleElement-impl.js | 0 .../living/nodes/HTMLTrackElement-impl.js | 0 .../living/nodes/HTMLUListElement-impl.js | 0 .../living/nodes/HTMLUnknownElement-impl.js | 0 .../living/nodes/HTMLVideoElement-impl.js | 0 .../lib/jsdom/living/nodes/LinkStyle-impl.js | 0 .../jsdom/lib/jsdom/living/nodes/Node-impl.js | 0 .../lib/jsdom/living/nodes/NodeList-impl.js | 0 .../nodes/NonDocumentTypeChildNode-impl.js | 0 .../living/nodes/NonElementParentNode-impl.js | 0 .../lib/jsdom/living/nodes/ParentNode-impl.js | 0 .../nodes/ProcessingInstruction-impl.js | 0 .../lib/jsdom/living/nodes/SVGElement-impl.js | 0 .../living/nodes/SVGGraphicsElement-impl.js | 0 .../jsdom/living/nodes/SVGSVGElement-impl.js | 0 .../lib/jsdom/living/nodes/SVGTests-impl.js | 0 .../living/nodes/SVGTitleElement-impl.js | 0 .../lib/jsdom/living/nodes/ShadowRoot-impl.js | 0 .../lib/jsdom/living/nodes/Slotable-impl.js | 0 .../jsdom/lib/jsdom/living/nodes/Text-impl.js | 0 .../living/nodes/WindowEventHandlers-impl.js | 0 .../jsdom/living/nodes/XMLDocument-impl.js | 0 .../jsdom/lib/jsdom/living/post-message.js | 0 .../jsdom/living/range/AbstractRange-impl.js | 0 .../lib/jsdom/living/range/Range-impl.js | 0 .../jsdom/living/range/StaticRange-impl.js | 0 .../lib/jsdom/living/range/boundary-point.js | 0 .../jsdom/living/selection/Selection-impl.js | 0 .../living/svg/SVGAnimatedString-impl.js | 0 .../jsdom/lib/jsdom/living/svg/SVGListBase.js | 0 .../lib/jsdom/living/svg/SVGNumber-impl.js | 0 .../jsdom/living/svg/SVGStringList-impl.js | 0 .../living/traversal/NodeIterator-impl.js | 0 .../jsdom/living/traversal/TreeWalker-impl.js | 0 .../lib/jsdom/living/traversal/helpers.js | 0 .../websockets/WebSocket-impl-browser.js | 0 .../jsdom/living/websockets/WebSocket-impl.js | 0 .../jsdom/living/webstorage/Storage-impl.js | 0 .../lib/jsdom/living/window/BarProp-impl.js | 0 .../lib/jsdom/living/window/External-impl.js | 0 .../lib/jsdom/living/window/History-impl.js | 0 .../lib/jsdom/living/window/Location-impl.js | 0 .../lib/jsdom/living/window/Screen-impl.js | 0 .../lib/jsdom/living/window/SessionHistory.js | 0 .../lib/jsdom/living/window/navigation.js | 0 .../lib/jsdom/living/xhr/FormData-impl.js | 0 .../jsdom/living/xhr/XMLHttpRequest-impl.js | 0 .../xhr/XMLHttpRequestEventTarget-impl.js | 0 .../living/xhr/XMLHttpRequestUpload-impl.js | 0 .../lib/jsdom/living/xhr/xhr-sync-worker.js | 0 .../jsdom/lib/jsdom/living/xhr/xhr-utils.js | 0 .../lib/jsdom/named-properties-tracker.js | 0 node_modules/jsdom/lib/jsdom/utils.js | 0 .../jsdom/lib/jsdom/virtual-console.js | 0 node_modules/jsdom/lib/jsdom/vm-shim.js | 0 node_modules/jsdom/package.json | 0 node_modules/jsesc/LICENSE-MIT.txt | 20 + node_modules/jsesc/README.md | 421 + node_modules/jsesc/bin/jsesc | 148 + node_modules/jsesc/jsesc.js | 329 + node_modules/jsesc/man/jsesc.1 | 94 + node_modules/jsesc/package.json | 54 + .../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 + node_modules/json5/LICENSE.md | 23 + node_modules/json5/README.md | 278 + node_modules/json5/dist/index.js | 1737 ++ node_modules/json5/dist/index.min.js | 1 + node_modules/json5/dist/index.min.mjs | 1 + node_modules/json5/dist/index.mjs | 1426 ++ node_modules/json5/lib/cli.js | 152 + node_modules/json5/lib/index.d.ts | 4 + node_modules/json5/lib/index.js | 9 + node_modules/json5/lib/parse.d.ts | 15 + node_modules/json5/lib/parse.js | 1114 ++ node_modules/json5/lib/register.js | 13 + node_modules/json5/lib/require.js | 4 + node_modules/json5/lib/stringify.d.ts | 89 + node_modules/json5/lib/stringify.js | 261 + node_modules/json5/lib/unicode.d.ts | 3 + node_modules/json5/lib/unicode.js | 4 + node_modules/json5/lib/util.d.ts | 5 + node_modules/json5/lib/util.js | 35 + node_modules/json5/package.json | 72 + node_modules/justify-text/LICENSE | 0 node_modules/justify-text/README.md | 0 node_modules/justify-text/index.d.ts | 0 node_modules/justify-text/index.js | 0 node_modules/justify-text/package.json | 0 node_modules/justify-text/test/index.test.js | 0 node_modules/kleur/index.js | 104 + node_modules/kleur/kleur.d.ts | 45 + node_modules/kleur/license | 21 + node_modules/kleur/package.json | 35 + node_modules/kleur/readme.md | 172 + node_modules/leven/index.d.ts | 21 + node_modules/leven/index.js | 77 + node_modules/leven/license | 9 + node_modules/leven/package.json | 57 + node_modules/leven/readme.md | 50 + node_modules/levn/LICENSE | 0 node_modules/levn/README.md | 0 node_modules/levn/lib/cast.js | 0 node_modules/levn/lib/coerce.js | 0 node_modules/levn/lib/index.js | 0 node_modules/levn/lib/parse-string.js | 0 node_modules/levn/lib/parse.js | 0 node_modules/levn/package.json | 0 node_modules/lines-and-columns/LICENSE | 21 + node_modules/lines-and-columns/README.md | 33 + .../lines-and-columns/build/index.d.ts | 13 + node_modules/lines-and-columns/build/index.js | 62 + node_modules/lines-and-columns/package.json | 49 + node_modules/locate-path/index.d.ts | 83 + node_modules/locate-path/index.js | 65 + node_modules/locate-path/license | 9 + node_modules/locate-path/package.json | 45 + node_modules/locate-path/readme.md | 122 + node_modules/lodash/LICENSE | 0 node_modules/lodash/README.md | 0 node_modules/lodash/_DataView.js | 0 node_modules/lodash/_Hash.js | 0 node_modules/lodash/_LazyWrapper.js | 0 node_modules/lodash/_ListCache.js | 0 node_modules/lodash/_LodashWrapper.js | 0 node_modules/lodash/_Map.js | 0 node_modules/lodash/_MapCache.js | 0 node_modules/lodash/_Promise.js | 0 node_modules/lodash/_Set.js | 0 node_modules/lodash/_SetCache.js | 0 node_modules/lodash/_Stack.js | 0 node_modules/lodash/_Symbol.js | 0 node_modules/lodash/_Uint8Array.js | 0 node_modules/lodash/_WeakMap.js | 0 node_modules/lodash/_apply.js | 0 node_modules/lodash/_arrayAggregator.js | 0 node_modules/lodash/_arrayEach.js | 0 node_modules/lodash/_arrayEachRight.js | 0 node_modules/lodash/_arrayEvery.js | 0 node_modules/lodash/_arrayFilter.js | 0 node_modules/lodash/_arrayIncludes.js | 0 node_modules/lodash/_arrayIncludesWith.js | 0 node_modules/lodash/_arrayLikeKeys.js | 0 node_modules/lodash/_arrayMap.js | 0 node_modules/lodash/_arrayPush.js | 0 node_modules/lodash/_arrayReduce.js | 0 node_modules/lodash/_arrayReduceRight.js | 0 node_modules/lodash/_arraySample.js | 0 node_modules/lodash/_arraySampleSize.js | 0 node_modules/lodash/_arrayShuffle.js | 0 node_modules/lodash/_arraySome.js | 0 node_modules/lodash/_asciiSize.js | 0 node_modules/lodash/_asciiToArray.js | 0 node_modules/lodash/_asciiWords.js | 0 node_modules/lodash/_assignMergeValue.js | 0 node_modules/lodash/_assignValue.js | 0 node_modules/lodash/_assocIndexOf.js | 0 node_modules/lodash/_baseAggregator.js | 0 node_modules/lodash/_baseAssign.js | 0 node_modules/lodash/_baseAssignIn.js | 0 node_modules/lodash/_baseAssignValue.js | 0 node_modules/lodash/_baseAt.js | 0 node_modules/lodash/_baseClamp.js | 0 node_modules/lodash/_baseClone.js | 0 node_modules/lodash/_baseConforms.js | 0 node_modules/lodash/_baseConformsTo.js | 0 node_modules/lodash/_baseCreate.js | 0 node_modules/lodash/_baseDelay.js | 0 node_modules/lodash/_baseDifference.js | 0 node_modules/lodash/_baseEach.js | 0 node_modules/lodash/_baseEachRight.js | 0 node_modules/lodash/_baseEvery.js | 0 node_modules/lodash/_baseExtremum.js | 0 node_modules/lodash/_baseFill.js | 0 node_modules/lodash/_baseFilter.js | 0 node_modules/lodash/_baseFindIndex.js | 0 node_modules/lodash/_baseFindKey.js | 0 node_modules/lodash/_baseFlatten.js | 0 node_modules/lodash/_baseFor.js | 0 node_modules/lodash/_baseForOwn.js | 0 node_modules/lodash/_baseForOwnRight.js | 0 node_modules/lodash/_baseForRight.js | 0 node_modules/lodash/_baseFunctions.js | 0 node_modules/lodash/_baseGet.js | 0 node_modules/lodash/_baseGetAllKeys.js | 0 node_modules/lodash/_baseGetTag.js | 0 node_modules/lodash/_baseGt.js | 0 node_modules/lodash/_baseHas.js | 0 node_modules/lodash/_baseHasIn.js | 0 node_modules/lodash/_baseInRange.js | 0 node_modules/lodash/_baseIndexOf.js | 0 node_modules/lodash/_baseIndexOfWith.js | 0 node_modules/lodash/_baseIntersection.js | 0 node_modules/lodash/_baseInverter.js | 0 node_modules/lodash/_baseInvoke.js | 0 node_modules/lodash/_baseIsArguments.js | 0 node_modules/lodash/_baseIsArrayBuffer.js | 0 node_modules/lodash/_baseIsDate.js | 0 node_modules/lodash/_baseIsEqual.js | 0 node_modules/lodash/_baseIsEqualDeep.js | 0 node_modules/lodash/_baseIsMap.js | 0 node_modules/lodash/_baseIsMatch.js | 0 node_modules/lodash/_baseIsNaN.js | 0 node_modules/lodash/_baseIsNative.js | 0 node_modules/lodash/_baseIsRegExp.js | 0 node_modules/lodash/_baseIsSet.js | 0 node_modules/lodash/_baseIsTypedArray.js | 0 node_modules/lodash/_baseIteratee.js | 0 node_modules/lodash/_baseKeys.js | 0 node_modules/lodash/_baseKeysIn.js | 0 node_modules/lodash/_baseLodash.js | 0 node_modules/lodash/_baseLt.js | 0 node_modules/lodash/_baseMap.js | 0 node_modules/lodash/_baseMatches.js | 0 node_modules/lodash/_baseMatchesProperty.js | 0 node_modules/lodash/_baseMean.js | 0 node_modules/lodash/_baseMerge.js | 0 node_modules/lodash/_baseMergeDeep.js | 0 node_modules/lodash/_baseNth.js | 0 node_modules/lodash/_baseOrderBy.js | 0 node_modules/lodash/_basePick.js | 0 node_modules/lodash/_basePickBy.js | 0 node_modules/lodash/_baseProperty.js | 0 node_modules/lodash/_basePropertyDeep.js | 0 node_modules/lodash/_basePropertyOf.js | 0 node_modules/lodash/_basePullAll.js | 0 node_modules/lodash/_basePullAt.js | 0 node_modules/lodash/_baseRandom.js | 0 node_modules/lodash/_baseRange.js | 0 node_modules/lodash/_baseReduce.js | 0 node_modules/lodash/_baseRepeat.js | 0 node_modules/lodash/_baseRest.js | 0 node_modules/lodash/_baseSample.js | 0 node_modules/lodash/_baseSampleSize.js | 0 node_modules/lodash/_baseSet.js | 0 node_modules/lodash/_baseSetData.js | 0 node_modules/lodash/_baseSetToString.js | 0 node_modules/lodash/_baseShuffle.js | 0 node_modules/lodash/_baseSlice.js | 0 node_modules/lodash/_baseSome.js | 0 node_modules/lodash/_baseSortBy.js | 0 node_modules/lodash/_baseSortedIndex.js | 0 node_modules/lodash/_baseSortedIndexBy.js | 0 node_modules/lodash/_baseSortedUniq.js | 0 node_modules/lodash/_baseSum.js | 0 node_modules/lodash/_baseTimes.js | 0 node_modules/lodash/_baseToNumber.js | 0 node_modules/lodash/_baseToPairs.js | 0 node_modules/lodash/_baseToString.js | 0 node_modules/lodash/_baseTrim.js | 0 node_modules/lodash/_baseUnary.js | 0 node_modules/lodash/_baseUniq.js | 0 node_modules/lodash/_baseUnset.js | 0 node_modules/lodash/_baseUpdate.js | 0 node_modules/lodash/_baseValues.js | 0 node_modules/lodash/_baseWhile.js | 0 node_modules/lodash/_baseWrapperValue.js | 0 node_modules/lodash/_baseXor.js | 0 node_modules/lodash/_baseZipObject.js | 0 node_modules/lodash/_cacheHas.js | 0 node_modules/lodash/_castArrayLikeObject.js | 0 node_modules/lodash/_castFunction.js | 0 node_modules/lodash/_castPath.js | 0 node_modules/lodash/_castRest.js | 0 node_modules/lodash/_castSlice.js | 0 node_modules/lodash/_charsEndIndex.js | 0 node_modules/lodash/_charsStartIndex.js | 0 node_modules/lodash/_cloneArrayBuffer.js | 0 node_modules/lodash/_cloneBuffer.js | 0 node_modules/lodash/_cloneDataView.js | 0 node_modules/lodash/_cloneRegExp.js | 0 node_modules/lodash/_cloneSymbol.js | 0 node_modules/lodash/_cloneTypedArray.js | 0 node_modules/lodash/_compareAscending.js | 0 node_modules/lodash/_compareMultiple.js | 0 node_modules/lodash/_composeArgs.js | 0 node_modules/lodash/_composeArgsRight.js | 0 node_modules/lodash/_copyArray.js | 0 node_modules/lodash/_copyObject.js | 0 node_modules/lodash/_copySymbols.js | 0 node_modules/lodash/_copySymbolsIn.js | 0 node_modules/lodash/_coreJsData.js | 0 node_modules/lodash/_countHolders.js | 0 node_modules/lodash/_createAggregator.js | 0 node_modules/lodash/_createAssigner.js | 0 node_modules/lodash/_createBaseEach.js | 0 node_modules/lodash/_createBaseFor.js | 0 node_modules/lodash/_createBind.js | 0 node_modules/lodash/_createCaseFirst.js | 0 node_modules/lodash/_createCompounder.js | 0 node_modules/lodash/_createCtor.js | 0 node_modules/lodash/_createCurry.js | 0 node_modules/lodash/_createFind.js | 0 node_modules/lodash/_createFlow.js | 0 node_modules/lodash/_createHybrid.js | 0 node_modules/lodash/_createInverter.js | 0 node_modules/lodash/_createMathOperation.js | 0 node_modules/lodash/_createOver.js | 0 node_modules/lodash/_createPadding.js | 0 node_modules/lodash/_createPartial.js | 0 node_modules/lodash/_createRange.js | 0 node_modules/lodash/_createRecurry.js | 0 .../lodash/_createRelationalOperation.js | 0 node_modules/lodash/_createRound.js | 0 node_modules/lodash/_createSet.js | 0 node_modules/lodash/_createToPairs.js | 0 node_modules/lodash/_createWrap.js | 0 .../lodash/_customDefaultsAssignIn.js | 0 node_modules/lodash/_customDefaultsMerge.js | 0 node_modules/lodash/_customOmitClone.js | 0 node_modules/lodash/_deburrLetter.js | 0 node_modules/lodash/_defineProperty.js | 0 node_modules/lodash/_equalArrays.js | 0 node_modules/lodash/_equalByTag.js | 0 node_modules/lodash/_equalObjects.js | 0 node_modules/lodash/_escapeHtmlChar.js | 0 node_modules/lodash/_escapeStringChar.js | 0 node_modules/lodash/_flatRest.js | 0 node_modules/lodash/_freeGlobal.js | 0 node_modules/lodash/_getAllKeys.js | 0 node_modules/lodash/_getAllKeysIn.js | 0 node_modules/lodash/_getData.js | 0 node_modules/lodash/_getFuncName.js | 0 node_modules/lodash/_getHolder.js | 0 node_modules/lodash/_getMapData.js | 0 node_modules/lodash/_getMatchData.js | 0 node_modules/lodash/_getNative.js | 0 node_modules/lodash/_getPrototype.js | 0 node_modules/lodash/_getRawTag.js | 0 node_modules/lodash/_getSymbols.js | 0 node_modules/lodash/_getSymbolsIn.js | 0 node_modules/lodash/_getTag.js | 0 node_modules/lodash/_getValue.js | 0 node_modules/lodash/_getView.js | 0 node_modules/lodash/_getWrapDetails.js | 0 node_modules/lodash/_hasPath.js | 0 node_modules/lodash/_hasUnicode.js | 0 node_modules/lodash/_hasUnicodeWord.js | 0 node_modules/lodash/_hashClear.js | 0 node_modules/lodash/_hashDelete.js | 0 node_modules/lodash/_hashGet.js | 0 node_modules/lodash/_hashHas.js | 0 node_modules/lodash/_hashSet.js | 0 node_modules/lodash/_initCloneArray.js | 0 node_modules/lodash/_initCloneByTag.js | 0 node_modules/lodash/_initCloneObject.js | 0 node_modules/lodash/_insertWrapDetails.js | 0 node_modules/lodash/_isFlattenable.js | 0 node_modules/lodash/_isIndex.js | 0 node_modules/lodash/_isIterateeCall.js | 0 node_modules/lodash/_isKey.js | 0 node_modules/lodash/_isKeyable.js | 0 node_modules/lodash/_isLaziable.js | 0 node_modules/lodash/_isMaskable.js | 0 node_modules/lodash/_isMasked.js | 0 node_modules/lodash/_isPrototype.js | 0 node_modules/lodash/_isStrictComparable.js | 0 node_modules/lodash/_iteratorToArray.js | 0 node_modules/lodash/_lazyClone.js | 0 node_modules/lodash/_lazyReverse.js | 0 node_modules/lodash/_lazyValue.js | 0 node_modules/lodash/_listCacheClear.js | 0 node_modules/lodash/_listCacheDelete.js | 0 node_modules/lodash/_listCacheGet.js | 0 node_modules/lodash/_listCacheHas.js | 0 node_modules/lodash/_listCacheSet.js | 0 node_modules/lodash/_mapCacheClear.js | 0 node_modules/lodash/_mapCacheDelete.js | 0 node_modules/lodash/_mapCacheGet.js | 0 node_modules/lodash/_mapCacheHas.js | 0 node_modules/lodash/_mapCacheSet.js | 0 node_modules/lodash/_mapToArray.js | 0 .../lodash/_matchesStrictComparable.js | 0 node_modules/lodash/_memoizeCapped.js | 0 node_modules/lodash/_mergeData.js | 0 node_modules/lodash/_metaMap.js | 0 node_modules/lodash/_nativeCreate.js | 0 node_modules/lodash/_nativeKeys.js | 0 node_modules/lodash/_nativeKeysIn.js | 0 node_modules/lodash/_nodeUtil.js | 0 node_modules/lodash/_objectToString.js | 0 node_modules/lodash/_overArg.js | 0 node_modules/lodash/_overRest.js | 0 node_modules/lodash/_parent.js | 0 node_modules/lodash/_reEscape.js | 0 node_modules/lodash/_reEvaluate.js | 0 node_modules/lodash/_reInterpolate.js | 0 node_modules/lodash/_realNames.js | 0 node_modules/lodash/_reorder.js | 0 node_modules/lodash/_replaceHolders.js | 0 node_modules/lodash/_root.js | 0 node_modules/lodash/_safeGet.js | 0 node_modules/lodash/_setCacheAdd.js | 0 node_modules/lodash/_setCacheHas.js | 0 node_modules/lodash/_setData.js | 0 node_modules/lodash/_setToArray.js | 0 node_modules/lodash/_setToPairs.js | 0 node_modules/lodash/_setToString.js | 0 node_modules/lodash/_setWrapToString.js | 0 node_modules/lodash/_shortOut.js | 0 node_modules/lodash/_shuffleSelf.js | 0 node_modules/lodash/_stackClear.js | 0 node_modules/lodash/_stackDelete.js | 0 node_modules/lodash/_stackGet.js | 0 node_modules/lodash/_stackHas.js | 0 node_modules/lodash/_stackSet.js | 0 node_modules/lodash/_strictIndexOf.js | 0 node_modules/lodash/_strictLastIndexOf.js | 0 node_modules/lodash/_stringSize.js | 0 node_modules/lodash/_stringToArray.js | 0 node_modules/lodash/_stringToPath.js | 0 node_modules/lodash/_toKey.js | 0 node_modules/lodash/_toSource.js | 0 node_modules/lodash/_trimmedEndIndex.js | 0 node_modules/lodash/_unescapeHtmlChar.js | 0 node_modules/lodash/_unicodeSize.js | 0 node_modules/lodash/_unicodeToArray.js | 0 node_modules/lodash/_unicodeWords.js | 0 node_modules/lodash/_updateWrapDetails.js | 0 node_modules/lodash/_wrapperClone.js | 0 node_modules/lodash/add.js | 0 node_modules/lodash/after.js | 0 node_modules/lodash/array.js | 0 node_modules/lodash/ary.js | 0 node_modules/lodash/assign.js | 0 node_modules/lodash/assignIn.js | 0 node_modules/lodash/assignInWith.js | 0 node_modules/lodash/assignWith.js | 0 node_modules/lodash/at.js | 0 node_modules/lodash/attempt.js | 0 node_modules/lodash/before.js | 0 node_modules/lodash/bind.js | 0 node_modules/lodash/bindAll.js | 0 node_modules/lodash/bindKey.js | 0 node_modules/lodash/camelCase.js | 0 node_modules/lodash/capitalize.js | 0 node_modules/lodash/castArray.js | 0 node_modules/lodash/ceil.js | 0 node_modules/lodash/chain.js | 0 node_modules/lodash/chunk.js | 0 node_modules/lodash/clamp.js | 0 node_modules/lodash/clone.js | 0 node_modules/lodash/cloneDeep.js | 0 node_modules/lodash/cloneDeepWith.js | 0 node_modules/lodash/cloneWith.js | 0 node_modules/lodash/collection.js | 0 node_modules/lodash/commit.js | 0 node_modules/lodash/compact.js | 0 node_modules/lodash/concat.js | 0 node_modules/lodash/cond.js | 0 node_modules/lodash/conforms.js | 0 node_modules/lodash/conformsTo.js | 0 node_modules/lodash/constant.js | 0 node_modules/lodash/core.js | 0 node_modules/lodash/core.min.js | 0 node_modules/lodash/countBy.js | 0 node_modules/lodash/create.js | 0 node_modules/lodash/curry.js | 0 node_modules/lodash/curryRight.js | 0 node_modules/lodash/date.js | 0 node_modules/lodash/debounce.js | 0 node_modules/lodash/deburr.js | 0 node_modules/lodash/defaultTo.js | 0 node_modules/lodash/defaults.js | 0 node_modules/lodash/defaultsDeep.js | 0 node_modules/lodash/defer.js | 0 node_modules/lodash/delay.js | 0 node_modules/lodash/difference.js | 0 node_modules/lodash/differenceBy.js | 0 node_modules/lodash/differenceWith.js | 0 node_modules/lodash/divide.js | 0 node_modules/lodash/drop.js | 0 node_modules/lodash/dropRight.js | 0 node_modules/lodash/dropRightWhile.js | 0 node_modules/lodash/dropWhile.js | 0 node_modules/lodash/each.js | 0 node_modules/lodash/eachRight.js | 0 node_modules/lodash/endsWith.js | 0 node_modules/lodash/entries.js | 0 node_modules/lodash/entriesIn.js | 0 node_modules/lodash/eq.js | 0 node_modules/lodash/escape.js | 0 node_modules/lodash/escapeRegExp.js | 0 node_modules/lodash/every.js | 0 node_modules/lodash/extend.js | 0 node_modules/lodash/extendWith.js | 0 node_modules/lodash/fill.js | 0 node_modules/lodash/filter.js | 0 node_modules/lodash/find.js | 0 node_modules/lodash/findIndex.js | 0 node_modules/lodash/findKey.js | 0 node_modules/lodash/findLast.js | 0 node_modules/lodash/findLastIndex.js | 0 node_modules/lodash/findLastKey.js | 0 node_modules/lodash/first.js | 0 node_modules/lodash/flake.lock | 0 node_modules/lodash/flake.nix | 0 node_modules/lodash/flatMap.js | 0 node_modules/lodash/flatMapDeep.js | 0 node_modules/lodash/flatMapDepth.js | 0 node_modules/lodash/flatten.js | 0 node_modules/lodash/flattenDeep.js | 0 node_modules/lodash/flattenDepth.js | 0 node_modules/lodash/flip.js | 0 node_modules/lodash/floor.js | 0 node_modules/lodash/flow.js | 0 node_modules/lodash/flowRight.js | 0 node_modules/lodash/forEach.js | 0 node_modules/lodash/forEachRight.js | 0 node_modules/lodash/forIn.js | 0 node_modules/lodash/forInRight.js | 0 node_modules/lodash/forOwn.js | 0 node_modules/lodash/forOwnRight.js | 0 node_modules/lodash/fp.js | 0 node_modules/lodash/fp/F.js | 0 node_modules/lodash/fp/T.js | 0 node_modules/lodash/fp/__.js | 0 node_modules/lodash/fp/_baseConvert.js | 0 node_modules/lodash/fp/_convertBrowser.js | 0 node_modules/lodash/fp/_falseOptions.js | 0 node_modules/lodash/fp/_mapping.js | 0 node_modules/lodash/fp/_util.js | 0 node_modules/lodash/fp/add.js | 0 node_modules/lodash/fp/after.js | 0 node_modules/lodash/fp/all.js | 0 node_modules/lodash/fp/allPass.js | 0 node_modules/lodash/fp/always.js | 0 node_modules/lodash/fp/any.js | 0 node_modules/lodash/fp/anyPass.js | 0 node_modules/lodash/fp/apply.js | 0 node_modules/lodash/fp/array.js | 0 node_modules/lodash/fp/ary.js | 0 node_modules/lodash/fp/assign.js | 0 node_modules/lodash/fp/assignAll.js | 0 node_modules/lodash/fp/assignAllWith.js | 0 node_modules/lodash/fp/assignIn.js | 0 node_modules/lodash/fp/assignInAll.js | 0 node_modules/lodash/fp/assignInAllWith.js | 0 node_modules/lodash/fp/assignInWith.js | 0 node_modules/lodash/fp/assignWith.js | 0 node_modules/lodash/fp/assoc.js | 0 node_modules/lodash/fp/assocPath.js | 0 node_modules/lodash/fp/at.js | 0 node_modules/lodash/fp/attempt.js | 0 node_modules/lodash/fp/before.js | 0 node_modules/lodash/fp/bind.js | 0 node_modules/lodash/fp/bindAll.js | 0 node_modules/lodash/fp/bindKey.js | 0 node_modules/lodash/fp/camelCase.js | 0 node_modules/lodash/fp/capitalize.js | 0 node_modules/lodash/fp/castArray.js | 0 node_modules/lodash/fp/ceil.js | 0 node_modules/lodash/fp/chain.js | 0 node_modules/lodash/fp/chunk.js | 0 node_modules/lodash/fp/clamp.js | 0 node_modules/lodash/fp/clone.js | 0 node_modules/lodash/fp/cloneDeep.js | 0 node_modules/lodash/fp/cloneDeepWith.js | 0 node_modules/lodash/fp/cloneWith.js | 0 node_modules/lodash/fp/collection.js | 0 node_modules/lodash/fp/commit.js | 0 node_modules/lodash/fp/compact.js | 0 node_modules/lodash/fp/complement.js | 0 node_modules/lodash/fp/compose.js | 0 node_modules/lodash/fp/concat.js | 0 node_modules/lodash/fp/cond.js | 0 node_modules/lodash/fp/conforms.js | 0 node_modules/lodash/fp/conformsTo.js | 0 node_modules/lodash/fp/constant.js | 0 node_modules/lodash/fp/contains.js | 0 node_modules/lodash/fp/convert.js | 0 node_modules/lodash/fp/countBy.js | 0 node_modules/lodash/fp/create.js | 0 node_modules/lodash/fp/curry.js | 0 node_modules/lodash/fp/curryN.js | 0 node_modules/lodash/fp/curryRight.js | 0 node_modules/lodash/fp/curryRightN.js | 0 node_modules/lodash/fp/date.js | 0 node_modules/lodash/fp/debounce.js | 0 node_modules/lodash/fp/deburr.js | 0 node_modules/lodash/fp/defaultTo.js | 0 node_modules/lodash/fp/defaults.js | 0 node_modules/lodash/fp/defaultsAll.js | 0 node_modules/lodash/fp/defaultsDeep.js | 0 node_modules/lodash/fp/defaultsDeepAll.js | 0 node_modules/lodash/fp/defer.js | 0 node_modules/lodash/fp/delay.js | 0 node_modules/lodash/fp/difference.js | 0 node_modules/lodash/fp/differenceBy.js | 0 node_modules/lodash/fp/differenceWith.js | 0 node_modules/lodash/fp/dissoc.js | 0 node_modules/lodash/fp/dissocPath.js | 0 node_modules/lodash/fp/divide.js | 0 node_modules/lodash/fp/drop.js | 0 node_modules/lodash/fp/dropLast.js | 0 node_modules/lodash/fp/dropLastWhile.js | 0 node_modules/lodash/fp/dropRight.js | 0 node_modules/lodash/fp/dropRightWhile.js | 0 node_modules/lodash/fp/dropWhile.js | 0 node_modules/lodash/fp/each.js | 0 node_modules/lodash/fp/eachRight.js | 0 node_modules/lodash/fp/endsWith.js | 0 node_modules/lodash/fp/entries.js | 0 node_modules/lodash/fp/entriesIn.js | 0 node_modules/lodash/fp/eq.js | 0 node_modules/lodash/fp/equals.js | 0 node_modules/lodash/fp/escape.js | 0 node_modules/lodash/fp/escapeRegExp.js | 0 node_modules/lodash/fp/every.js | 0 node_modules/lodash/fp/extend.js | 0 node_modules/lodash/fp/extendAll.js | 0 node_modules/lodash/fp/extendAllWith.js | 0 node_modules/lodash/fp/extendWith.js | 0 node_modules/lodash/fp/fill.js | 0 node_modules/lodash/fp/filter.js | 0 node_modules/lodash/fp/find.js | 0 node_modules/lodash/fp/findFrom.js | 0 node_modules/lodash/fp/findIndex.js | 0 node_modules/lodash/fp/findIndexFrom.js | 0 node_modules/lodash/fp/findKey.js | 0 node_modules/lodash/fp/findLast.js | 0 node_modules/lodash/fp/findLastFrom.js | 0 node_modules/lodash/fp/findLastIndex.js | 0 node_modules/lodash/fp/findLastIndexFrom.js | 0 node_modules/lodash/fp/findLastKey.js | 0 node_modules/lodash/fp/first.js | 0 node_modules/lodash/fp/flatMap.js | 0 node_modules/lodash/fp/flatMapDeep.js | 0 node_modules/lodash/fp/flatMapDepth.js | 0 node_modules/lodash/fp/flatten.js | 0 node_modules/lodash/fp/flattenDeep.js | 0 node_modules/lodash/fp/flattenDepth.js | 0 node_modules/lodash/fp/flip.js | 0 node_modules/lodash/fp/floor.js | 0 node_modules/lodash/fp/flow.js | 0 node_modules/lodash/fp/flowRight.js | 0 node_modules/lodash/fp/forEach.js | 0 node_modules/lodash/fp/forEachRight.js | 0 node_modules/lodash/fp/forIn.js | 0 node_modules/lodash/fp/forInRight.js | 0 node_modules/lodash/fp/forOwn.js | 0 node_modules/lodash/fp/forOwnRight.js | 0 node_modules/lodash/fp/fromPairs.js | 0 node_modules/lodash/fp/function.js | 0 node_modules/lodash/fp/functions.js | 0 node_modules/lodash/fp/functionsIn.js | 0 node_modules/lodash/fp/get.js | 0 node_modules/lodash/fp/getOr.js | 0 node_modules/lodash/fp/groupBy.js | 0 node_modules/lodash/fp/gt.js | 0 node_modules/lodash/fp/gte.js | 0 node_modules/lodash/fp/has.js | 0 node_modules/lodash/fp/hasIn.js | 0 node_modules/lodash/fp/head.js | 0 node_modules/lodash/fp/identical.js | 0 node_modules/lodash/fp/identity.js | 0 node_modules/lodash/fp/inRange.js | 0 node_modules/lodash/fp/includes.js | 0 node_modules/lodash/fp/includesFrom.js | 0 node_modules/lodash/fp/indexBy.js | 0 node_modules/lodash/fp/indexOf.js | 0 node_modules/lodash/fp/indexOfFrom.js | 0 node_modules/lodash/fp/init.js | 0 node_modules/lodash/fp/initial.js | 0 node_modules/lodash/fp/intersection.js | 0 node_modules/lodash/fp/intersectionBy.js | 0 node_modules/lodash/fp/intersectionWith.js | 0 node_modules/lodash/fp/invert.js | 0 node_modules/lodash/fp/invertBy.js | 0 node_modules/lodash/fp/invertObj.js | 0 node_modules/lodash/fp/invoke.js | 0 node_modules/lodash/fp/invokeArgs.js | 0 node_modules/lodash/fp/invokeArgsMap.js | 0 node_modules/lodash/fp/invokeMap.js | 0 node_modules/lodash/fp/isArguments.js | 0 node_modules/lodash/fp/isArray.js | 0 node_modules/lodash/fp/isArrayBuffer.js | 0 node_modules/lodash/fp/isArrayLike.js | 0 node_modules/lodash/fp/isArrayLikeObject.js | 0 node_modules/lodash/fp/isBoolean.js | 0 node_modules/lodash/fp/isBuffer.js | 0 node_modules/lodash/fp/isDate.js | 0 node_modules/lodash/fp/isElement.js | 0 node_modules/lodash/fp/isEmpty.js | 0 node_modules/lodash/fp/isEqual.js | 0 node_modules/lodash/fp/isEqualWith.js | 0 node_modules/lodash/fp/isError.js | 0 node_modules/lodash/fp/isFinite.js | 0 node_modules/lodash/fp/isFunction.js | 0 node_modules/lodash/fp/isInteger.js | 0 node_modules/lodash/fp/isLength.js | 0 node_modules/lodash/fp/isMap.js | 0 node_modules/lodash/fp/isMatch.js | 0 node_modules/lodash/fp/isMatchWith.js | 0 node_modules/lodash/fp/isNaN.js | 0 node_modules/lodash/fp/isNative.js | 0 node_modules/lodash/fp/isNil.js | 0 node_modules/lodash/fp/isNull.js | 0 node_modules/lodash/fp/isNumber.js | 0 node_modules/lodash/fp/isObject.js | 0 node_modules/lodash/fp/isObjectLike.js | 0 node_modules/lodash/fp/isPlainObject.js | 0 node_modules/lodash/fp/isRegExp.js | 0 node_modules/lodash/fp/isSafeInteger.js | 0 node_modules/lodash/fp/isSet.js | 0 node_modules/lodash/fp/isString.js | 0 node_modules/lodash/fp/isSymbol.js | 0 node_modules/lodash/fp/isTypedArray.js | 0 node_modules/lodash/fp/isUndefined.js | 0 node_modules/lodash/fp/isWeakMap.js | 0 node_modules/lodash/fp/isWeakSet.js | 0 node_modules/lodash/fp/iteratee.js | 0 node_modules/lodash/fp/join.js | 0 node_modules/lodash/fp/juxt.js | 0 node_modules/lodash/fp/kebabCase.js | 0 node_modules/lodash/fp/keyBy.js | 0 node_modules/lodash/fp/keys.js | 0 node_modules/lodash/fp/keysIn.js | 0 node_modules/lodash/fp/lang.js | 0 node_modules/lodash/fp/last.js | 0 node_modules/lodash/fp/lastIndexOf.js | 0 node_modules/lodash/fp/lastIndexOfFrom.js | 0 node_modules/lodash/fp/lowerCase.js | 0 node_modules/lodash/fp/lowerFirst.js | 0 node_modules/lodash/fp/lt.js | 0 node_modules/lodash/fp/lte.js | 0 node_modules/lodash/fp/map.js | 0 node_modules/lodash/fp/mapKeys.js | 0 node_modules/lodash/fp/mapValues.js | 0 node_modules/lodash/fp/matches.js | 0 node_modules/lodash/fp/matchesProperty.js | 0 node_modules/lodash/fp/math.js | 0 node_modules/lodash/fp/max.js | 0 node_modules/lodash/fp/maxBy.js | 0 node_modules/lodash/fp/mean.js | 0 node_modules/lodash/fp/meanBy.js | 0 node_modules/lodash/fp/memoize.js | 0 node_modules/lodash/fp/merge.js | 0 node_modules/lodash/fp/mergeAll.js | 0 node_modules/lodash/fp/mergeAllWith.js | 0 node_modules/lodash/fp/mergeWith.js | 0 node_modules/lodash/fp/method.js | 0 node_modules/lodash/fp/methodOf.js | 0 node_modules/lodash/fp/min.js | 0 node_modules/lodash/fp/minBy.js | 0 node_modules/lodash/fp/mixin.js | 0 node_modules/lodash/fp/multiply.js | 0 node_modules/lodash/fp/nAry.js | 0 node_modules/lodash/fp/negate.js | 0 node_modules/lodash/fp/next.js | 0 node_modules/lodash/fp/noop.js | 0 node_modules/lodash/fp/now.js | 0 node_modules/lodash/fp/nth.js | 0 node_modules/lodash/fp/nthArg.js | 0 node_modules/lodash/fp/number.js | 0 node_modules/lodash/fp/object.js | 0 node_modules/lodash/fp/omit.js | 0 node_modules/lodash/fp/omitAll.js | 0 node_modules/lodash/fp/omitBy.js | 0 node_modules/lodash/fp/once.js | 0 node_modules/lodash/fp/orderBy.js | 0 node_modules/lodash/fp/over.js | 0 node_modules/lodash/fp/overArgs.js | 0 node_modules/lodash/fp/overEvery.js | 0 node_modules/lodash/fp/overSome.js | 0 node_modules/lodash/fp/pad.js | 0 node_modules/lodash/fp/padChars.js | 0 node_modules/lodash/fp/padCharsEnd.js | 0 node_modules/lodash/fp/padCharsStart.js | 0 node_modules/lodash/fp/padEnd.js | 0 node_modules/lodash/fp/padStart.js | 0 node_modules/lodash/fp/parseInt.js | 0 node_modules/lodash/fp/partial.js | 0 node_modules/lodash/fp/partialRight.js | 0 node_modules/lodash/fp/partition.js | 0 node_modules/lodash/fp/path.js | 0 node_modules/lodash/fp/pathEq.js | 0 node_modules/lodash/fp/pathOr.js | 0 node_modules/lodash/fp/paths.js | 0 node_modules/lodash/fp/pick.js | 0 node_modules/lodash/fp/pickAll.js | 0 node_modules/lodash/fp/pickBy.js | 0 node_modules/lodash/fp/pipe.js | 0 node_modules/lodash/fp/placeholder.js | 0 node_modules/lodash/fp/plant.js | 0 node_modules/lodash/fp/pluck.js | 0 node_modules/lodash/fp/prop.js | 0 node_modules/lodash/fp/propEq.js | 0 node_modules/lodash/fp/propOr.js | 0 node_modules/lodash/fp/property.js | 0 node_modules/lodash/fp/propertyOf.js | 0 node_modules/lodash/fp/props.js | 0 node_modules/lodash/fp/pull.js | 0 node_modules/lodash/fp/pullAll.js | 0 node_modules/lodash/fp/pullAllBy.js | 0 node_modules/lodash/fp/pullAllWith.js | 0 node_modules/lodash/fp/pullAt.js | 0 node_modules/lodash/fp/random.js | 0 node_modules/lodash/fp/range.js | 0 node_modules/lodash/fp/rangeRight.js | 0 node_modules/lodash/fp/rangeStep.js | 0 node_modules/lodash/fp/rangeStepRight.js | 0 node_modules/lodash/fp/rearg.js | 0 node_modules/lodash/fp/reduce.js | 0 node_modules/lodash/fp/reduceRight.js | 0 node_modules/lodash/fp/reject.js | 0 node_modules/lodash/fp/remove.js | 0 node_modules/lodash/fp/repeat.js | 0 node_modules/lodash/fp/replace.js | 0 node_modules/lodash/fp/rest.js | 0 node_modules/lodash/fp/restFrom.js | 0 node_modules/lodash/fp/result.js | 0 node_modules/lodash/fp/reverse.js | 0 node_modules/lodash/fp/round.js | 0 node_modules/lodash/fp/sample.js | 0 node_modules/lodash/fp/sampleSize.js | 0 node_modules/lodash/fp/seq.js | 0 node_modules/lodash/fp/set.js | 0 node_modules/lodash/fp/setWith.js | 0 node_modules/lodash/fp/shuffle.js | 0 node_modules/lodash/fp/size.js | 0 node_modules/lodash/fp/slice.js | 0 node_modules/lodash/fp/snakeCase.js | 0 node_modules/lodash/fp/some.js | 0 node_modules/lodash/fp/sortBy.js | 0 node_modules/lodash/fp/sortedIndex.js | 0 node_modules/lodash/fp/sortedIndexBy.js | 0 node_modules/lodash/fp/sortedIndexOf.js | 0 node_modules/lodash/fp/sortedLastIndex.js | 0 node_modules/lodash/fp/sortedLastIndexBy.js | 0 node_modules/lodash/fp/sortedLastIndexOf.js | 0 node_modules/lodash/fp/sortedUniq.js | 0 node_modules/lodash/fp/sortedUniqBy.js | 0 node_modules/lodash/fp/split.js | 0 node_modules/lodash/fp/spread.js | 0 node_modules/lodash/fp/spreadFrom.js | 0 node_modules/lodash/fp/startCase.js | 0 node_modules/lodash/fp/startsWith.js | 0 node_modules/lodash/fp/string.js | 0 node_modules/lodash/fp/stubArray.js | 0 node_modules/lodash/fp/stubFalse.js | 0 node_modules/lodash/fp/stubObject.js | 0 node_modules/lodash/fp/stubString.js | 0 node_modules/lodash/fp/stubTrue.js | 0 node_modules/lodash/fp/subtract.js | 0 node_modules/lodash/fp/sum.js | 0 node_modules/lodash/fp/sumBy.js | 0 node_modules/lodash/fp/symmetricDifference.js | 0 .../lodash/fp/symmetricDifferenceBy.js | 0 .../lodash/fp/symmetricDifferenceWith.js | 0 node_modules/lodash/fp/tail.js | 0 node_modules/lodash/fp/take.js | 0 node_modules/lodash/fp/takeLast.js | 0 node_modules/lodash/fp/takeLastWhile.js | 0 node_modules/lodash/fp/takeRight.js | 0 node_modules/lodash/fp/takeRightWhile.js | 0 node_modules/lodash/fp/takeWhile.js | 0 node_modules/lodash/fp/tap.js | 0 node_modules/lodash/fp/template.js | 0 node_modules/lodash/fp/templateSettings.js | 0 node_modules/lodash/fp/throttle.js | 0 node_modules/lodash/fp/thru.js | 0 node_modules/lodash/fp/times.js | 0 node_modules/lodash/fp/toArray.js | 0 node_modules/lodash/fp/toFinite.js | 0 node_modules/lodash/fp/toInteger.js | 0 node_modules/lodash/fp/toIterator.js | 0 node_modules/lodash/fp/toJSON.js | 0 node_modules/lodash/fp/toLength.js | 0 node_modules/lodash/fp/toLower.js | 0 node_modules/lodash/fp/toNumber.js | 0 node_modules/lodash/fp/toPairs.js | 0 node_modules/lodash/fp/toPairsIn.js | 0 node_modules/lodash/fp/toPath.js | 0 node_modules/lodash/fp/toPlainObject.js | 0 node_modules/lodash/fp/toSafeInteger.js | 0 node_modules/lodash/fp/toString.js | 0 node_modules/lodash/fp/toUpper.js | 0 node_modules/lodash/fp/transform.js | 0 node_modules/lodash/fp/trim.js | 0 node_modules/lodash/fp/trimChars.js | 0 node_modules/lodash/fp/trimCharsEnd.js | 0 node_modules/lodash/fp/trimCharsStart.js | 0 node_modules/lodash/fp/trimEnd.js | 0 node_modules/lodash/fp/trimStart.js | 0 node_modules/lodash/fp/truncate.js | 0 node_modules/lodash/fp/unapply.js | 0 node_modules/lodash/fp/unary.js | 0 node_modules/lodash/fp/unescape.js | 0 node_modules/lodash/fp/union.js | 0 node_modules/lodash/fp/unionBy.js | 0 node_modules/lodash/fp/unionWith.js | 0 node_modules/lodash/fp/uniq.js | 0 node_modules/lodash/fp/uniqBy.js | 0 node_modules/lodash/fp/uniqWith.js | 0 node_modules/lodash/fp/uniqueId.js | 0 node_modules/lodash/fp/unnest.js | 0 node_modules/lodash/fp/unset.js | 0 node_modules/lodash/fp/unzip.js | 0 node_modules/lodash/fp/unzipWith.js | 0 node_modules/lodash/fp/update.js | 0 node_modules/lodash/fp/updateWith.js | 0 node_modules/lodash/fp/upperCase.js | 0 node_modules/lodash/fp/upperFirst.js | 0 node_modules/lodash/fp/useWith.js | 0 node_modules/lodash/fp/util.js | 0 node_modules/lodash/fp/value.js | 0 node_modules/lodash/fp/valueOf.js | 0 node_modules/lodash/fp/values.js | 0 node_modules/lodash/fp/valuesIn.js | 0 node_modules/lodash/fp/where.js | 0 node_modules/lodash/fp/whereEq.js | 0 node_modules/lodash/fp/without.js | 0 node_modules/lodash/fp/words.js | 0 node_modules/lodash/fp/wrap.js | 0 node_modules/lodash/fp/wrapperAt.js | 0 node_modules/lodash/fp/wrapperChain.js | 0 node_modules/lodash/fp/wrapperLodash.js | 0 node_modules/lodash/fp/wrapperReverse.js | 0 node_modules/lodash/fp/wrapperValue.js | 0 node_modules/lodash/fp/xor.js | 0 node_modules/lodash/fp/xorBy.js | 0 node_modules/lodash/fp/xorWith.js | 0 node_modules/lodash/fp/zip.js | 0 node_modules/lodash/fp/zipAll.js | 0 node_modules/lodash/fp/zipObj.js | 0 node_modules/lodash/fp/zipObject.js | 0 node_modules/lodash/fp/zipObjectDeep.js | 0 node_modules/lodash/fp/zipWith.js | 0 node_modules/lodash/fromPairs.js | 0 node_modules/lodash/function.js | 0 node_modules/lodash/functions.js | 0 node_modules/lodash/functionsIn.js | 0 node_modules/lodash/get.js | 0 node_modules/lodash/groupBy.js | 0 node_modules/lodash/gt.js | 0 node_modules/lodash/gte.js | 0 node_modules/lodash/has.js | 0 node_modules/lodash/hasIn.js | 0 node_modules/lodash/head.js | 0 node_modules/lodash/identity.js | 0 node_modules/lodash/inRange.js | 0 node_modules/lodash/includes.js | 0 node_modules/lodash/index.js | 0 node_modules/lodash/indexOf.js | 0 node_modules/lodash/initial.js | 0 node_modules/lodash/intersection.js | 0 node_modules/lodash/intersectionBy.js | 0 node_modules/lodash/intersectionWith.js | 0 node_modules/lodash/invert.js | 0 node_modules/lodash/invertBy.js | 0 node_modules/lodash/invoke.js | 0 node_modules/lodash/invokeMap.js | 0 node_modules/lodash/isArguments.js | 0 node_modules/lodash/isArray.js | 0 node_modules/lodash/isArrayBuffer.js | 0 node_modules/lodash/isArrayLike.js | 0 node_modules/lodash/isArrayLikeObject.js | 0 node_modules/lodash/isBoolean.js | 0 node_modules/lodash/isBuffer.js | 0 node_modules/lodash/isDate.js | 0 node_modules/lodash/isElement.js | 0 node_modules/lodash/isEmpty.js | 0 node_modules/lodash/isEqual.js | 0 node_modules/lodash/isEqualWith.js | 0 node_modules/lodash/isError.js | 0 node_modules/lodash/isFinite.js | 0 node_modules/lodash/isFunction.js | 0 node_modules/lodash/isInteger.js | 0 node_modules/lodash/isLength.js | 0 node_modules/lodash/isMap.js | 0 node_modules/lodash/isMatch.js | 0 node_modules/lodash/isMatchWith.js | 0 node_modules/lodash/isNaN.js | 0 node_modules/lodash/isNative.js | 0 node_modules/lodash/isNil.js | 0 node_modules/lodash/isNull.js | 0 node_modules/lodash/isNumber.js | 0 node_modules/lodash/isObject.js | 0 node_modules/lodash/isObjectLike.js | 0 node_modules/lodash/isPlainObject.js | 0 node_modules/lodash/isRegExp.js | 0 node_modules/lodash/isSafeInteger.js | 0 node_modules/lodash/isSet.js | 0 node_modules/lodash/isString.js | 0 node_modules/lodash/isSymbol.js | 0 node_modules/lodash/isTypedArray.js | 0 node_modules/lodash/isUndefined.js | 0 node_modules/lodash/isWeakMap.js | 0 node_modules/lodash/isWeakSet.js | 0 node_modules/lodash/iteratee.js | 0 node_modules/lodash/join.js | 0 node_modules/lodash/kebabCase.js | 0 node_modules/lodash/keyBy.js | 0 node_modules/lodash/keys.js | 0 node_modules/lodash/keysIn.js | 0 node_modules/lodash/lang.js | 0 node_modules/lodash/last.js | 0 node_modules/lodash/lastIndexOf.js | 0 node_modules/lodash/lodash.js | 0 node_modules/lodash/lodash.min.js | 0 node_modules/lodash/lowerCase.js | 0 node_modules/lodash/lowerFirst.js | 0 node_modules/lodash/lt.js | 0 node_modules/lodash/lte.js | 0 node_modules/lodash/map.js | 0 node_modules/lodash/mapKeys.js | 0 node_modules/lodash/mapValues.js | 0 node_modules/lodash/matches.js | 0 node_modules/lodash/matchesProperty.js | 0 node_modules/lodash/math.js | 0 node_modules/lodash/max.js | 0 node_modules/lodash/maxBy.js | 0 node_modules/lodash/mean.js | 0 node_modules/lodash/meanBy.js | 0 node_modules/lodash/memoize.js | 0 node_modules/lodash/merge.js | 0 node_modules/lodash/mergeWith.js | 0 node_modules/lodash/method.js | 0 node_modules/lodash/methodOf.js | 0 node_modules/lodash/min.js | 0 node_modules/lodash/minBy.js | 0 node_modules/lodash/mixin.js | 0 node_modules/lodash/multiply.js | 0 node_modules/lodash/negate.js | 0 node_modules/lodash/next.js | 0 node_modules/lodash/noop.js | 0 node_modules/lodash/now.js | 0 node_modules/lodash/nth.js | 0 node_modules/lodash/nthArg.js | 0 node_modules/lodash/number.js | 0 node_modules/lodash/object.js | 0 node_modules/lodash/omit.js | 0 node_modules/lodash/omitBy.js | 0 node_modules/lodash/once.js | 0 node_modules/lodash/orderBy.js | 0 node_modules/lodash/over.js | 0 node_modules/lodash/overArgs.js | 0 node_modules/lodash/overEvery.js | 0 node_modules/lodash/overSome.js | 0 node_modules/lodash/package.json | 0 node_modules/lodash/pad.js | 0 node_modules/lodash/padEnd.js | 0 node_modules/lodash/padStart.js | 0 node_modules/lodash/parseInt.js | 0 node_modules/lodash/partial.js | 0 node_modules/lodash/partialRight.js | 0 node_modules/lodash/partition.js | 0 node_modules/lodash/pick.js | 0 node_modules/lodash/pickBy.js | 0 node_modules/lodash/plant.js | 0 node_modules/lodash/property.js | 0 node_modules/lodash/propertyOf.js | 0 node_modules/lodash/pull.js | 0 node_modules/lodash/pullAll.js | 0 node_modules/lodash/pullAllBy.js | 0 node_modules/lodash/pullAllWith.js | 0 node_modules/lodash/pullAt.js | 0 node_modules/lodash/random.js | 0 node_modules/lodash/range.js | 0 node_modules/lodash/rangeRight.js | 0 node_modules/lodash/rearg.js | 0 node_modules/lodash/reduce.js | 0 node_modules/lodash/reduceRight.js | 0 node_modules/lodash/reject.js | 0 node_modules/lodash/release.md | 0 node_modules/lodash/remove.js | 0 node_modules/lodash/repeat.js | 0 node_modules/lodash/replace.js | 0 node_modules/lodash/rest.js | 0 node_modules/lodash/result.js | 0 node_modules/lodash/reverse.js | 0 node_modules/lodash/round.js | 0 node_modules/lodash/sample.js | 0 node_modules/lodash/sampleSize.js | 0 node_modules/lodash/seq.js | 0 node_modules/lodash/set.js | 0 node_modules/lodash/setWith.js | 0 node_modules/lodash/shuffle.js | 0 node_modules/lodash/size.js | 0 node_modules/lodash/slice.js | 0 node_modules/lodash/snakeCase.js | 0 node_modules/lodash/some.js | 0 node_modules/lodash/sortBy.js | 0 node_modules/lodash/sortedIndex.js | 0 node_modules/lodash/sortedIndexBy.js | 0 node_modules/lodash/sortedIndexOf.js | 0 node_modules/lodash/sortedLastIndex.js | 0 node_modules/lodash/sortedLastIndexBy.js | 0 node_modules/lodash/sortedLastIndexOf.js | 0 node_modules/lodash/sortedUniq.js | 0 node_modules/lodash/sortedUniqBy.js | 0 node_modules/lodash/split.js | 0 node_modules/lodash/spread.js | 0 node_modules/lodash/startCase.js | 0 node_modules/lodash/startsWith.js | 0 node_modules/lodash/string.js | 0 node_modules/lodash/stubArray.js | 0 node_modules/lodash/stubFalse.js | 0 node_modules/lodash/stubObject.js | 0 node_modules/lodash/stubString.js | 0 node_modules/lodash/stubTrue.js | 0 node_modules/lodash/subtract.js | 0 node_modules/lodash/sum.js | 0 node_modules/lodash/sumBy.js | 0 node_modules/lodash/tail.js | 0 node_modules/lodash/take.js | 0 node_modules/lodash/takeRight.js | 0 node_modules/lodash/takeRightWhile.js | 0 node_modules/lodash/takeWhile.js | 0 node_modules/lodash/tap.js | 0 node_modules/lodash/template.js | 0 node_modules/lodash/templateSettings.js | 0 node_modules/lodash/throttle.js | 0 node_modules/lodash/thru.js | 0 node_modules/lodash/times.js | 0 node_modules/lodash/toArray.js | 0 node_modules/lodash/toFinite.js | 0 node_modules/lodash/toInteger.js | 0 node_modules/lodash/toIterator.js | 0 node_modules/lodash/toJSON.js | 0 node_modules/lodash/toLength.js | 0 node_modules/lodash/toLower.js | 0 node_modules/lodash/toNumber.js | 0 node_modules/lodash/toPairs.js | 0 node_modules/lodash/toPairsIn.js | 0 node_modules/lodash/toPath.js | 0 node_modules/lodash/toPlainObject.js | 0 node_modules/lodash/toSafeInteger.js | 0 node_modules/lodash/toString.js | 0 node_modules/lodash/toUpper.js | 0 node_modules/lodash/transform.js | 0 node_modules/lodash/trim.js | 0 node_modules/lodash/trimEnd.js | 0 node_modules/lodash/trimStart.js | 0 node_modules/lodash/truncate.js | 0 node_modules/lodash/unary.js | 0 node_modules/lodash/unescape.js | 0 node_modules/lodash/union.js | 0 node_modules/lodash/unionBy.js | 0 node_modules/lodash/unionWith.js | 0 node_modules/lodash/uniq.js | 0 node_modules/lodash/uniqBy.js | 0 node_modules/lodash/uniqWith.js | 0 node_modules/lodash/uniqueId.js | 0 node_modules/lodash/unset.js | 0 node_modules/lodash/unzip.js | 0 node_modules/lodash/unzipWith.js | 0 node_modules/lodash/update.js | 0 node_modules/lodash/updateWith.js | 0 node_modules/lodash/upperCase.js | 0 node_modules/lodash/upperFirst.js | 0 node_modules/lodash/util.js | 0 node_modules/lodash/value.js | 0 node_modules/lodash/valueOf.js | 0 node_modules/lodash/values.js | 0 node_modules/lodash/valuesIn.js | 0 node_modules/lodash/without.js | 0 node_modules/lodash/words.js | 0 node_modules/lodash/wrap.js | 0 node_modules/lodash/wrapperAt.js | 0 node_modules/lodash/wrapperChain.js | 0 node_modules/lodash/wrapperLodash.js | 0 node_modules/lodash/wrapperReverse.js | 0 node_modules/lodash/wrapperValue.js | 0 node_modules/lodash/xor.js | 0 node_modules/lodash/xorBy.js | 0 node_modules/lodash/xorWith.js | 0 node_modules/lodash/zip.js | 0 node_modules/lodash/zipObject.js | 0 node_modules/lodash/zipObjectDeep.js | 0 node_modules/lodash/zipWith.js | 0 node_modules/lru-cache/LICENSE | 15 + node_modules/lru-cache/README.md | 166 + node_modules/lru-cache/index.js | 334 + node_modules/lru-cache/package.json | 32 + node_modules/make-dir/index.d.ts | 66 + node_modules/make-dir/index.js | 156 + node_modules/make-dir/license | 9 + node_modules/make-dir/package.json | 59 + node_modules/make-dir/readme.md | 125 + node_modules/makeerror/.travis.yml | 3 + node_modules/makeerror/lib/makeerror.js | 87 + node_modules/makeerror/license | 28 + node_modules/makeerror/package.json | 21 + node_modules/makeerror/readme.md | 77 + node_modules/media-typer/HISTORY.md | 0 node_modules/media-typer/LICENSE | 0 node_modules/media-typer/README.md | 0 node_modules/media-typer/index.js | 0 node_modules/media-typer/package.json | 0 node_modules/merge-descriptors/HISTORY.md | 0 node_modules/merge-descriptors/LICENSE | 0 node_modules/merge-descriptors/README.md | 0 node_modules/merge-descriptors/index.js | 0 node_modules/merge-descriptors/package.json | 0 node_modules/merge-stream/LICENSE | 21 + node_modules/merge-stream/README.md | 78 + node_modules/merge-stream/index.js | 41 + node_modules/merge-stream/package.json | 19 + node_modules/methods/HISTORY.md | 0 node_modules/methods/LICENSE | 0 node_modules/methods/README.md | 0 node_modules/methods/index.js | 0 node_modules/methods/package.json | 0 node_modules/micromatch/LICENSE | 21 + node_modules/micromatch/README.md | 1011 ++ node_modules/micromatch/index.js | 467 + node_modules/micromatch/package.json | 119 + node_modules/mime-db/HISTORY.md | 0 node_modules/mime-db/LICENSE | 0 node_modules/mime-db/README.md | 0 node_modules/mime-db/db.json | 0 node_modules/mime-db/index.js | 0 node_modules/mime-db/package.json | 0 node_modules/mime-types/HISTORY.md | 0 node_modules/mime-types/LICENSE | 0 node_modules/mime-types/README.md | 0 node_modules/mime-types/index.js | 0 node_modules/mime-types/package.json | 0 node_modules/mime/.npmignore | 0 node_modules/mime/CHANGELOG.md | 0 node_modules/mime/LICENSE | 0 node_modules/mime/README.md | 0 node_modules/mime/mime.js | 0 node_modules/mime/package.json | 0 node_modules/mime/src/test.js | 0 node_modules/mime/types.json | 0 node_modules/mimic-fn/index.d.ts | 54 + node_modules/mimic-fn/index.js | 13 + node_modules/mimic-fn/license | 9 + node_modules/mimic-fn/package.json | 42 + node_modules/mimic-fn/readme.md | 69 + node_modules/minimatch/LICENSE | 15 + node_modules/minimatch/README.md | 230 + node_modules/minimatch/minimatch.js | 947 + node_modules/minimatch/package.json | 33 + node_modules/ms/index.js | 0 node_modules/ms/license.md | 0 node_modules/ms/package.json | 0 node_modules/ms/readme.md | 0 node_modules/natural-compare/README.md | 125 + node_modules/natural-compare/index.js | 57 + node_modules/natural-compare/package.json | 42 + node_modules/negotiator/HISTORY.md | 0 node_modules/negotiator/LICENSE | 0 node_modules/negotiator/README.md | 0 node_modules/negotiator/index.js | 0 node_modules/negotiator/lib/charset.js | 0 node_modules/negotiator/lib/encoding.js | 0 node_modules/negotiator/lib/language.js | 0 node_modules/negotiator/lib/mediaType.js | 0 node_modules/negotiator/package.json | 0 node_modules/node-int64/.npmignore | 3 + node_modules/node-int64/Int64.js | 268 + node_modules/node-int64/LICENSE | 19 + node_modules/node-int64/README.md | 78 + node_modules/node-int64/package.json | 27 + node_modules/node-int64/test.js | 120 + node_modules/node-releases/LICENSE | 21 + node_modules/node-releases/README.md | 31 + .../node-releases/data/processed/envs.json | 1 + .../release-schedule/release-schedule.json | 1 + node_modules/node-releases/package.json | 18 + node_modules/normalize-path/LICENSE | 21 + node_modules/normalize-path/README.md | 127 + node_modules/normalize-path/index.js | 35 + node_modules/normalize-path/package.json | 77 + node_modules/npm-run-path/index.d.ts | 89 + node_modules/npm-run-path/index.js | 47 + node_modules/npm-run-path/license | 9 + node_modules/npm-run-path/package.json | 44 + node_modules/npm-run-path/readme.md | 115 + node_modules/nwsapi/LICENSE | 0 node_modules/nwsapi/README.md | 0 node_modules/nwsapi/dist/lint.log | 0 node_modules/nwsapi/package.json | 0 .../nwsapi/src/modules/nwsapi-jquery.js | 0 .../nwsapi/src/modules/nwsapi-traversal.js | 0 node_modules/nwsapi/src/nwsapi.js | 0 node_modules/object-inspect/.eslintrc | 0 .../object-inspect/.github/FUNDING.yml | 0 node_modules/object-inspect/.nycrc | 0 node_modules/object-inspect/CHANGELOG.md | 0 node_modules/object-inspect/LICENSE | 0 node_modules/object-inspect/example/all.js | 0 .../object-inspect/example/circular.js | 0 node_modules/object-inspect/example/fn.js | 0 .../object-inspect/example/inspect.js | 0 node_modules/object-inspect/index.js | 0 .../object-inspect/package-support.json | 0 node_modules/object-inspect/package.json | 0 node_modules/object-inspect/readme.markdown | 0 node_modules/object-inspect/test-core-js.js | 0 node_modules/object-inspect/test/bigint.js | 0 .../object-inspect/test/browser/dom.js | 0 node_modules/object-inspect/test/circular.js | 0 node_modules/object-inspect/test/deep.js | 0 node_modules/object-inspect/test/element.js | 0 node_modules/object-inspect/test/err.js | 0 node_modules/object-inspect/test/fakes.js | 0 node_modules/object-inspect/test/fn.js | 0 node_modules/object-inspect/test/has.js | 0 node_modules/object-inspect/test/holes.js | 0 .../object-inspect/test/indent-option.js | 0 node_modules/object-inspect/test/inspect.js | 0 node_modules/object-inspect/test/lowbyte.js | 0 node_modules/object-inspect/test/number.js | 0 .../object-inspect/test/quoteStyle.js | 0 .../object-inspect/test/toStringTag.js | 0 node_modules/object-inspect/test/undef.js | 0 node_modules/object-inspect/test/values.js | 0 node_modules/object-inspect/util.inspect.js | 0 node_modules/on-finished/HISTORY.md | 0 node_modules/on-finished/LICENSE | 0 node_modules/on-finished/README.md | 0 node_modules/on-finished/index.js | 0 node_modules/on-finished/package.json | 0 node_modules/once/LICENSE | 15 + node_modules/once/README.md | 79 + node_modules/once/once.js | 42 + node_modules/once/package.json | 33 + node_modules/onetime/index.d.ts | 64 + node_modules/onetime/index.js | 44 + node_modules/onetime/license | 9 + node_modules/onetime/package.json | 43 + node_modules/onetime/readme.md | 94 + node_modules/optionator/CHANGELOG.md | 0 node_modules/optionator/LICENSE | 0 node_modules/optionator/README.md | 0 node_modules/optionator/lib/help.js | 0 node_modules/optionator/lib/index.js | 0 node_modules/optionator/lib/util.js | 0 node_modules/optionator/package.json | 0 node_modules/p-limit/index.d.ts | 42 + node_modules/p-limit/index.js | 71 + node_modules/p-limit/license | 9 + node_modules/p-limit/package.json | 52 + node_modules/p-limit/readme.md | 101 + node_modules/p-locate/index.d.ts | 64 + node_modules/p-locate/index.js | 52 + node_modules/p-locate/license | 9 + .../p-locate/node_modules/p-limit/index.d.ts | 38 + .../p-locate/node_modules/p-limit/index.js | 57 + .../p-locate/node_modules/p-limit/license | 9 + .../node_modules/p-limit/package.json | 52 + .../p-locate/node_modules/p-limit/readme.md | 101 + node_modules/p-locate/package.json | 53 + node_modules/p-locate/readme.md | 90 + node_modules/p-try/index.d.ts | 39 + node_modules/p-try/index.js | 9 + node_modules/p-try/license | 9 + node_modules/p-try/package.json | 42 + node_modules/p-try/readme.md | 58 + node_modules/parse-json/index.js | 54 + node_modules/parse-json/license | 9 + node_modules/parse-json/package.json | 45 + node_modules/parse-json/readme.md | 119 + node_modules/parse5/LICENSE | 0 node_modules/parse5/README.md | 0 node_modules/parse5/lib/common/doctype.js | 0 node_modules/parse5/lib/common/error-codes.js | 0 .../parse5/lib/common/foreign-content.js | 0 node_modules/parse5/lib/common/html.js | 0 node_modules/parse5/lib/common/unicode.js | 0 .../extensions/error-reporting/mixin-base.js | 0 .../error-reporting/parser-mixin.js | 0 .../error-reporting/preprocessor-mixin.js | 0 .../error-reporting/tokenizer-mixin.js | 0 .../location-info/open-element-stack-mixin.js | 0 .../extensions/location-info/parser-mixin.js | 0 .../location-info/tokenizer-mixin.js | 0 .../position-tracking/preprocessor-mixin.js | 0 node_modules/parse5/lib/index.js | 0 .../lib/parser/formatting-element-list.js | 0 node_modules/parse5/lib/parser/index.js | 0 .../parse5/lib/parser/open-element-stack.js | 0 node_modules/parse5/lib/serializer/index.js | 0 node_modules/parse5/lib/tokenizer/index.js | 0 .../parse5/lib/tokenizer/named-entity-data.js | 0 .../parse5/lib/tokenizer/preprocessor.js | 0 .../parse5/lib/tree-adapters/default.js | 0 .../parse5/lib/utils/merge-options.js | 0 node_modules/parse5/lib/utils/mixin.js | 0 node_modules/parse5/package.json | 0 node_modules/parseurl/HISTORY.md | 0 node_modules/parseurl/LICENSE | 0 node_modules/parseurl/README.md | 0 node_modules/parseurl/index.js | 0 node_modules/parseurl/package.json | 0 node_modules/path-exists/index.d.ts | 28 + node_modules/path-exists/index.js | 23 + node_modules/path-exists/license | 9 + node_modules/path-exists/package.json | 39 + node_modules/path-exists/readme.md | 52 + node_modules/path-is-absolute/index.js | 20 + node_modules/path-is-absolute/license | 21 + node_modules/path-is-absolute/package.json | 43 + node_modules/path-is-absolute/readme.md | 59 + node_modules/path-key/index.d.ts | 40 + node_modules/path-key/index.js | 16 + node_modules/path-key/license | 9 + node_modules/path-key/package.json | 39 + node_modules/path-key/readme.md | 61 + node_modules/path-parse/LICENSE | 21 + node_modules/path-parse/README.md | 42 + node_modules/path-parse/index.js | 75 + node_modules/path-parse/package.json | 33 + node_modules/path-to-regexp/History.md | 0 node_modules/path-to-regexp/LICENSE | 0 node_modules/path-to-regexp/Readme.md | 0 node_modules/path-to-regexp/index.js | 0 node_modules/path-to-regexp/package.json | 0 node_modules/picocolors/LICENSE | 15 + node_modules/picocolors/README.md | 21 + node_modules/picocolors/package.json | 25 + node_modules/picocolors/picocolors.browser.js | 4 + node_modules/picocolors/picocolors.d.ts | 5 + node_modules/picocolors/picocolors.js | 58 + node_modules/picocolors/types.ts | 30 + node_modules/picomatch/CHANGELOG.md | 136 + node_modules/picomatch/LICENSE | 21 + node_modules/picomatch/README.md | 708 + node_modules/picomatch/index.js | 3 + node_modules/picomatch/lib/constants.js | 179 + node_modules/picomatch/lib/parse.js | 1091 ++ node_modules/picomatch/lib/picomatch.js | 342 + node_modules/picomatch/lib/scan.js | 391 + node_modules/picomatch/lib/utils.js | 64 + node_modules/picomatch/package.json | 81 + node_modules/pirates/LICENSE | 21 + node_modules/pirates/README.md | 69 + node_modules/pirates/index.d.ts | 82 + node_modules/pirates/lib/index.js | 159 + node_modules/pirates/package.json | 74 + node_modules/pkg-dir/index.d.ts | 44 + node_modules/pkg-dir/index.js | 17 + node_modules/pkg-dir/license | 9 + node_modules/pkg-dir/package.json | 56 + node_modules/pkg-dir/readme.md | 66 + node_modules/prelude-ls/CHANGELOG.md | 0 node_modules/prelude-ls/LICENSE | 0 node_modules/prelude-ls/README.md | 0 node_modules/prelude-ls/lib/Func.js | 0 node_modules/prelude-ls/lib/List.js | 0 node_modules/prelude-ls/lib/Num.js | 0 node_modules/prelude-ls/lib/Obj.js | 0 node_modules/prelude-ls/lib/Str.js | 0 node_modules/prelude-ls/lib/index.js | 0 node_modules/prelude-ls/package.json | 0 node_modules/pretty-format/LICENSE | 21 + node_modules/pretty-format/README.md | 463 + .../pretty-format/build/collections.js | 180 + node_modules/pretty-format/build/index.d.ts | 165 + node_modules/pretty-format/build/index.js | 478 + .../build/plugins/AsymmetricMatcher.js | 83 + .../build/plugins/DOMCollection.js | 67 + .../pretty-format/build/plugins/DOMElement.js | 103 + .../pretty-format/build/plugins/Immutable.js | 217 + .../build/plugins/ReactElement.js | 143 + .../build/plugins/ReactTestComponent.js | 58 + .../build/plugins/lib/escapeHTML.js | 16 + .../pretty-format/build/plugins/lib/markup.js | 113 + node_modules/pretty-format/build/types.js | 1 + .../node_modules/ansi-styles/index.d.ts | 167 + .../node_modules/ansi-styles/index.js | 164 + .../node_modules/ansi-styles/license | 9 + .../node_modules/ansi-styles/package.json | 52 + .../node_modules/ansi-styles/readme.md | 144 + node_modules/pretty-format/package.json | 43 + .../prompts/dist/dateparts/datepart.js | 39 + node_modules/prompts/dist/dateparts/day.js | 35 + node_modules/prompts/dist/dateparts/hours.js | 30 + node_modules/prompts/dist/dateparts/index.js | 13 + .../prompts/dist/dateparts/meridiem.js | 25 + .../prompts/dist/dateparts/milliseconds.js | 28 + .../prompts/dist/dateparts/minutes.js | 29 + node_modules/prompts/dist/dateparts/month.js | 31 + .../prompts/dist/dateparts/seconds.js | 29 + node_modules/prompts/dist/dateparts/year.js | 29 + .../prompts/dist/elements/autocomplete.js | 285 + .../dist/elements/autocompleteMultiselect.js | 201 + node_modules/prompts/dist/elements/confirm.js | 93 + node_modules/prompts/dist/elements/date.js | 250 + node_modules/prompts/dist/elements/index.js | 13 + .../prompts/dist/elements/multiselect.js | 289 + node_modules/prompts/dist/elements/number.js | 250 + node_modules/prompts/dist/elements/prompt.js | 82 + node_modules/prompts/dist/elements/select.js | 190 + node_modules/prompts/dist/elements/text.js | 245 + node_modules/prompts/dist/elements/toggle.js | 124 + node_modules/prompts/dist/index.js | 154 + node_modules/prompts/dist/prompts.js | 222 + node_modules/prompts/dist/util/action.js | 38 + node_modules/prompts/dist/util/clear.js | 42 + .../prompts/dist/util/entriesToDisplay.js | 21 + node_modules/prompts/dist/util/figures.js | 32 + node_modules/prompts/dist/util/index.js | 12 + node_modules/prompts/dist/util/lines.js | 14 + node_modules/prompts/dist/util/strip.js | 7 + node_modules/prompts/dist/util/style.js | 51 + node_modules/prompts/dist/util/wrap.js | 16 + node_modules/prompts/index.js | 14 + .../prompts/lib/dateparts/datepart.js | 35 + node_modules/prompts/lib/dateparts/day.js | 42 + node_modules/prompts/lib/dateparts/hours.js | 30 + node_modules/prompts/lib/dateparts/index.js | 13 + .../prompts/lib/dateparts/meridiem.js | 24 + .../prompts/lib/dateparts/milliseconds.js | 28 + node_modules/prompts/lib/dateparts/minutes.js | 28 + node_modules/prompts/lib/dateparts/month.js | 33 + node_modules/prompts/lib/dateparts/seconds.js | 28 + node_modules/prompts/lib/dateparts/year.js | 28 + .../prompts/lib/elements/autocomplete.js | 264 + .../lib/elements/autocompleteMultiselect.js | 194 + node_modules/prompts/lib/elements/confirm.js | 89 + node_modules/prompts/lib/elements/date.js | 209 + node_modules/prompts/lib/elements/index.js | 13 + .../prompts/lib/elements/multiselect.js | 271 + node_modules/prompts/lib/elements/number.js | 213 + node_modules/prompts/lib/elements/prompt.js | 68 + node_modules/prompts/lib/elements/select.js | 175 + node_modules/prompts/lib/elements/text.js | 208 + node_modules/prompts/lib/elements/toggle.js | 118 + node_modules/prompts/lib/index.js | 98 + node_modules/prompts/lib/prompts.js | 206 + node_modules/prompts/lib/util/action.js | 39 + node_modules/prompts/lib/util/clear.js | 22 + .../prompts/lib/util/entriesToDisplay.js | 21 + node_modules/prompts/lib/util/figures.js | 33 + node_modules/prompts/lib/util/index.js | 12 + node_modules/prompts/lib/util/lines.js | 15 + node_modules/prompts/lib/util/strip.js | 11 + node_modules/prompts/lib/util/style.js | 40 + node_modules/prompts/lib/util/wrap.js | 27 + node_modules/prompts/license | 21 + node_modules/prompts/package.json | 53 + node_modules/prompts/readme.md | 882 + node_modules/proxy-addr/HISTORY.md | 0 node_modules/proxy-addr/LICENSE | 0 node_modules/proxy-addr/README.md | 0 node_modules/proxy-addr/index.js | 0 node_modules/proxy-addr/package.json | 0 node_modules/psl/.env | 0 node_modules/psl/LICENSE | 0 node_modules/psl/README.md | 0 node_modules/psl/browserstack-logo.svg | 0 node_modules/psl/data/rules.json | 0 node_modules/psl/dist/psl.js | 0 node_modules/psl/dist/psl.min.js | 0 node_modules/psl/index.js | 0 node_modules/psl/package.json | 0 node_modules/punycode/LICENSE-MIT.txt | 0 node_modules/punycode/README.md | 0 node_modules/punycode/package.json | 0 node_modules/punycode/punycode.es6.js | 0 node_modules/punycode/punycode.js | 0 node_modules/qs/.editorconfig | 0 node_modules/qs/.eslintrc | 0 node_modules/qs/.github/FUNDING.yml | 0 node_modules/qs/.nycrc | 0 node_modules/qs/CHANGELOG.md | 0 node_modules/qs/LICENSE.md | 0 node_modules/qs/README.md | 0 node_modules/qs/dist/qs.js | 0 node_modules/qs/lib/formats.js | 0 node_modules/qs/lib/index.js | 0 node_modules/qs/lib/parse.js | 0 node_modules/qs/lib/stringify.js | 0 node_modules/qs/lib/utils.js | 0 node_modules/qs/package.json | 0 node_modules/qs/test/parse.js | 0 node_modules/qs/test/stringify.js | 0 node_modules/qs/test/utils.js | 0 node_modules/querystring/.History.md.un~ | Bin node_modules/querystring/.Readme.md.un~ | Bin node_modules/querystring/.package.json.un~ | Bin node_modules/querystring/.travis.yml | 0 node_modules/querystring/History.md | 0 node_modules/querystring/License.md | 0 node_modules/querystring/Readme.md | 0 node_modules/querystring/decode.js | 0 node_modules/querystring/encode.js | 0 node_modules/querystring/index.js | 0 node_modules/querystring/package.json | 0 node_modules/querystring/test/.index.js.un~ | Bin node_modules/querystring/test/common-index.js | 0 node_modules/querystring/test/index.js | 0 node_modules/querystring/test/tap-index.js | 0 node_modules/querystringify/LICENSE | 0 node_modules/querystringify/README.md | 0 node_modules/querystringify/index.js | 0 node_modules/querystringify/package.json | 0 node_modules/range-parser/HISTORY.md | 0 node_modules/range-parser/LICENSE | 0 node_modules/range-parser/README.md | 0 node_modules/range-parser/index.js | 0 node_modules/range-parser/package.json | 0 node_modules/raw-body/HISTORY.md | 0 node_modules/raw-body/LICENSE | 0 node_modules/raw-body/README.md | 0 node_modules/raw-body/SECURITY.md | 0 node_modules/raw-body/index.d.ts | 0 node_modules/raw-body/index.js | 0 node_modules/raw-body/package.json | 0 node_modules/react-is/LICENSE | 21 + node_modules/react-is/README.md | 104 + .../react-is/cjs/react-is.development.js | 221 + .../react-is/cjs/react-is.production.min.js | 14 + node_modules/react-is/index.js | 7 + node_modules/react-is/package.json | 26 + .../react-is/umd/react-is.development.js | 220 + .../react-is/umd/react-is.production.min.js | 15 + node_modules/require-directory/.jshintrc | 67 + node_modules/require-directory/.npmignore | 1 + node_modules/require-directory/.travis.yml | 3 + node_modules/require-directory/LICENSE | 22 + .../require-directory/README.markdown | 184 + node_modules/require-directory/index.js | 86 + node_modules/require-directory/package.json | 40 + node_modules/requires-port/.npmignore | 0 node_modules/requires-port/.travis.yml | 0 node_modules/requires-port/LICENSE | 0 node_modules/requires-port/README.md | 0 node_modules/requires-port/index.js | 0 node_modules/requires-port/package.json | 0 node_modules/requires-port/test.js | 0 node_modules/resolve-cwd/index.d.ts | 48 + node_modules/resolve-cwd/index.js | 5 + node_modules/resolve-cwd/license | 9 + node_modules/resolve-cwd/package.json | 43 + node_modules/resolve-cwd/readme.md | 58 + node_modules/resolve-from/index.d.ts | 31 + node_modules/resolve-from/index.js | 47 + node_modules/resolve-from/license | 9 + node_modules/resolve-from/package.json | 36 + node_modules/resolve-from/readme.md | 72 + node_modules/resolve.exports/dist/index.js | 149 + node_modules/resolve.exports/dist/index.mjs | 146 + node_modules/resolve.exports/index.d.ts | 21 + node_modules/resolve.exports/license | 21 + node_modules/resolve.exports/package.json | 47 + node_modules/resolve.exports/readme.md | 320 + node_modules/resolve/.editorconfig | 37 + node_modules/resolve/.eslintrc | 65 + node_modules/resolve/.github/FUNDING.yml | 12 + node_modules/resolve/LICENSE | 21 + node_modules/resolve/SECURITY.md | 3 + node_modules/resolve/async.js | 3 + node_modules/resolve/bin/resolve | 50 + node_modules/resolve/example/async.js | 5 + node_modules/resolve/example/sync.js | 3 + node_modules/resolve/index.js | 6 + node_modules/resolve/lib/async.js | 329 + node_modules/resolve/lib/caller.js | 8 + node_modules/resolve/lib/core.js | 52 + node_modules/resolve/lib/core.json | 153 + node_modules/resolve/lib/homedir.js | 24 + node_modules/resolve/lib/is-core.js | 5 + .../resolve/lib/node-modules-paths.js | 42 + node_modules/resolve/lib/normalize-options.js | 10 + node_modules/resolve/lib/sync.js | 208 + node_modules/resolve/package.json | 71 + node_modules/resolve/readme.markdown | 301 + node_modules/resolve/sync.js | 3 + node_modules/resolve/test/core.js | 88 + node_modules/resolve/test/dotdot.js | 29 + node_modules/resolve/test/dotdot/abc/index.js | 2 + node_modules/resolve/test/dotdot/index.js | 1 + node_modules/resolve/test/faulty_basedir.js | 29 + node_modules/resolve/test/filter.js | 34 + node_modules/resolve/test/filter_sync.js | 33 + node_modules/resolve/test/home_paths.js | 127 + node_modules/resolve/test/home_paths_sync.js | 114 + node_modules/resolve/test/mock.js | 315 + node_modules/resolve/test/mock_sync.js | 214 + node_modules/resolve/test/module_dir.js | 56 + .../test/module_dir/xmodules/aaa/index.js | 1 + .../test/module_dir/ymodules/aaa/index.js | 1 + .../test/module_dir/zmodules/bbb/main.js | 1 + .../test/module_dir/zmodules/bbb/package.json | 3 + .../resolve/test/node-modules-paths.js | 143 + node_modules/resolve/test/node_path.js | 70 + .../resolve/test/node_path/x/aaa/index.js | 1 + .../resolve/test/node_path/x/ccc/index.js | 1 + .../resolve/test/node_path/y/bbb/index.js | 1 + .../resolve/test/node_path/y/ccc/index.js | 1 + node_modules/resolve/test/nonstring.js | 9 + node_modules/resolve/test/pathfilter.js | 75 + .../resolve/test/pathfilter/deep_ref/main.js | 0 node_modules/resolve/test/precedence.js | 23 + node_modules/resolve/test/precedence/aaa.js | 1 + .../resolve/test/precedence/aaa/index.js | 1 + .../resolve/test/precedence/aaa/main.js | 1 + node_modules/resolve/test/precedence/bbb.js | 1 + .../resolve/test/precedence/bbb/main.js | 1 + node_modules/resolve/test/resolver.js | 595 + .../resolve/test/resolver/baz/doom.js | 0 .../resolve/test/resolver/baz/package.json | 4 + .../resolve/test/resolver/baz/quux.js | 1 + .../resolve/test/resolver/browser_field/a.js | 0 .../resolve/test/resolver/browser_field/b.js | 0 .../test/resolver/browser_field/package.json | 5 + node_modules/resolve/test/resolver/cup.coffee | 1 + .../resolve/test/resolver/dot_main/index.js | 1 + .../test/resolver/dot_main/package.json | 3 + .../test/resolver/dot_slash_main/index.js | 1 + .../test/resolver/dot_slash_main/package.json | 3 + .../resolve/test/resolver/false_main/index.js | 0 .../test/resolver/false_main/package.json | 4 + node_modules/resolve/test/resolver/foo.js | 1 + .../test/resolver/incorrect_main/index.js | 2 + .../test/resolver/incorrect_main/package.json | 3 + .../test/resolver/invalid_main/package.json | 7 + .../resolver/malformed_package_json/index.js | 0 .../malformed_package_json/package.json | 1 + node_modules/resolve/test/resolver/mug.coffee | 0 node_modules/resolve/test/resolver/mug.js | 0 .../test/resolver/multirepo/lerna.json | 6 + .../test/resolver/multirepo/package.json | 20 + .../multirepo/packages/package-a/index.js | 35 + .../multirepo/packages/package-a/package.json | 14 + .../multirepo/packages/package-b/index.js | 0 .../multirepo/packages/package-b/package.json | 14 + .../resolver/nested_symlinks/mylib/async.js | 26 + .../nested_symlinks/mylib/package.json | 15 + .../resolver/nested_symlinks/mylib/sync.js | 12 + .../test/resolver/other_path/lib/other-lib.js | 0 .../resolve/test/resolver/other_path/root.js | 0 .../resolve/test/resolver/quux/foo/index.js | 1 + .../resolve/test/resolver/same_names/foo.js | 1 + .../test/resolver/same_names/foo/index.js | 1 + .../resolver/symlinked/_/node_modules/foo.js | 0 .../symlinked/_/symlink_target/.gitkeep | 0 .../test/resolver/symlinked/package/bar.js | 1 + .../resolver/symlinked/package/package.json | 3 + .../test/resolver/without_basedir/main.js | 5 + node_modules/resolve/test/resolver_sync.js | 726 + node_modules/resolve/test/shadowed_core.js | 54 + .../shadowed_core/node_modules/util/index.js | 0 node_modules/resolve/test/subdirs.js | 13 + node_modules/resolve/test/symlinks.js | 176 + node_modules/safe-buffer/LICENSE | 0 node_modules/safe-buffer/README.md | 0 node_modules/safe-buffer/index.d.ts | 0 node_modules/safe-buffer/index.js | 0 node_modules/safe-buffer/package.json | 0 node_modules/safer-buffer/LICENSE | 0 node_modules/safer-buffer/Porting-Buffer.md | 0 node_modules/safer-buffer/Readme.md | 0 node_modules/safer-buffer/dangerous.js | 0 node_modules/safer-buffer/package.json | 0 node_modules/safer-buffer/safer.js | 0 node_modules/safer-buffer/tests.js | 0 node_modules/saxes/README.md | 0 node_modules/saxes/package.json | 0 node_modules/saxes/saxes.d.ts | 0 node_modules/saxes/saxes.js | 0 node_modules/saxes/saxes.js.map | 0 node_modules/semver/CHANGELOG.md | 70 + node_modules/semver/LICENSE | 15 + node_modules/semver/README.md | 443 + node_modules/semver/bin/semver.js | 174 + node_modules/semver/package.json | 28 + node_modules/semver/range.bnf | 16 + node_modules/semver/semver.js | 1596 ++ node_modules/send/HISTORY.md | 0 node_modules/send/LICENSE | 0 node_modules/send/README.md | 0 node_modules/send/SECURITY.md | 0 node_modules/send/index.js | 0 node_modules/send/node_modules/ms/index.js | 0 node_modules/send/node_modules/ms/license.md | 0 .../send/node_modules/ms/package.json | 0 node_modules/send/node_modules/ms/readme.md | 0 node_modules/send/package.json | 0 node_modules/serve-static/HISTORY.md | 0 node_modules/serve-static/LICENSE | 0 node_modules/serve-static/README.md | 0 node_modules/serve-static/index.js | 0 node_modules/serve-static/package.json | 0 node_modules/setprototypeof/LICENSE | 0 node_modules/setprototypeof/README.md | 0 node_modules/setprototypeof/index.d.ts | 0 node_modules/setprototypeof/index.js | 0 node_modules/setprototypeof/package.json | 0 node_modules/setprototypeof/test/index.js | 0 node_modules/shebang-command/index.js | 19 + node_modules/shebang-command/license | 9 + node_modules/shebang-command/package.json | 34 + node_modules/shebang-command/readme.md | 34 + node_modules/shebang-regex/index.d.ts | 22 + node_modules/shebang-regex/index.js | 2 + node_modules/shebang-regex/license | 9 + node_modules/shebang-regex/package.json | 35 + node_modules/shebang-regex/readme.md | 33 + node_modules/side-channel/.eslintignore | 0 node_modules/side-channel/.eslintrc | 0 node_modules/side-channel/.github/FUNDING.yml | 0 node_modules/side-channel/.nycrc | 0 node_modules/side-channel/CHANGELOG.md | 0 node_modules/side-channel/LICENSE | 0 node_modules/side-channel/README.md | 0 node_modules/side-channel/index.js | 0 node_modules/side-channel/package.json | 0 node_modules/side-channel/test/index.js | 0 node_modules/signal-exit/LICENSE.txt | 16 + node_modules/signal-exit/README.md | 39 + node_modules/signal-exit/index.js | 202 + node_modules/signal-exit/package.json | 38 + node_modules/signal-exit/signals.js | 53 + node_modules/sisteransi/license | 21 + node_modules/sisteransi/package.json | 34 + node_modules/sisteransi/readme.md | 113 + node_modules/sisteransi/src/index.js | 58 + node_modules/sisteransi/src/sisteransi.d.ts | 35 + node_modules/slash/index.d.ts | 25 + node_modules/slash/index.js | 11 + node_modules/slash/license | 9 + node_modules/slash/package.json | 35 + node_modules/slash/readme.md | 44 + node_modules/source-map-support/LICENSE.md | 21 + node_modules/source-map-support/README.md | 284 + .../browser-source-map-support.js | 113 + node_modules/source-map-support/package.json | 31 + node_modules/source-map-support/register.js | 1 + .../source-map-support/source-map-support.js | 567 + node_modules/source-map/CHANGELOG.md | 0 node_modules/source-map/LICENSE | 0 node_modules/source-map/README.md | 0 .../source-map/dist/source-map.debug.js | 0 node_modules/source-map/dist/source-map.js | 0 .../source-map/dist/source-map.min.js | 0 .../source-map/dist/source-map.min.js.map | 0 node_modules/source-map/lib/array-set.js | 0 node_modules/source-map/lib/base64-vlq.js | 0 node_modules/source-map/lib/base64.js | 0 node_modules/source-map/lib/binary-search.js | 0 node_modules/source-map/lib/mapping-list.js | 0 node_modules/source-map/lib/quick-sort.js | 0 .../source-map/lib/source-map-consumer.js | 0 .../source-map/lib/source-map-generator.js | 0 node_modules/source-map/lib/source-node.js | 0 node_modules/source-map/lib/util.js | 0 node_modules/source-map/package.json | 0 node_modules/source-map/source-map.d.ts | 0 node_modules/source-map/source-map.js | 0 node_modules/sprintf-js/.npmignore | 1 + node_modules/sprintf-js/LICENSE | 24 + node_modules/sprintf-js/README.md | 88 + node_modules/sprintf-js/bower.json | 14 + node_modules/sprintf-js/demo/angular.html | 20 + .../sprintf-js/dist/angular-sprintf.min.js | 4 + .../dist/angular-sprintf.min.js.map | 1 + .../sprintf-js/dist/angular-sprintf.min.map | 1 + node_modules/sprintf-js/dist/sprintf.min.js | 4 + .../sprintf-js/dist/sprintf.min.js.map | 1 + node_modules/sprintf-js/dist/sprintf.min.map | 1 + node_modules/sprintf-js/gruntfile.js | 36 + node_modules/sprintf-js/package.json | 22 + .../sprintf-js/src/angular-sprintf.js | 18 + node_modules/sprintf-js/src/sprintf.js | 208 + node_modules/sprintf-js/test/test.js | 82 + node_modules/stack-utils/LICENSE.md | 21 + node_modules/stack-utils/index.js | 344 + node_modules/stack-utils/package.json | 39 + node_modules/stack-utils/readme.md | 143 + node_modules/statuses/HISTORY.md | 0 node_modules/statuses/LICENSE | 0 node_modules/statuses/README.md | 0 node_modules/statuses/codes.json | 0 node_modules/statuses/index.js | 0 node_modules/statuses/package.json | 0 node_modules/string-length/index.d.ts | 22 + node_modules/string-length/index.js | 19 + node_modules/string-length/license | 9 + node_modules/string-length/package.json | 45 + node_modules/string-length/readme.md | 43 + node_modules/string-width/index.d.ts | 29 + node_modules/string-width/index.js | 47 + node_modules/string-width/license | 9 + node_modules/string-width/package.json | 56 + node_modules/string-width/readme.md | 50 + node_modules/strip-ansi/index.d.ts | 17 + node_modules/strip-ansi/index.js | 4 + node_modules/strip-ansi/license | 9 + node_modules/strip-ansi/package.json | 54 + node_modules/strip-ansi/readme.md | 46 + node_modules/strip-bom/index.d.ts | 14 + node_modules/strip-bom/index.js | 15 + node_modules/strip-bom/license | 9 + node_modules/strip-bom/package.json | 42 + node_modules/strip-bom/readme.md | 54 + node_modules/strip-final-newline/index.js | 16 + node_modules/strip-final-newline/license | 9 + node_modules/strip-final-newline/package.json | 40 + node_modules/strip-final-newline/readme.md | 30 + node_modules/strip-json-comments/index.d.ts | 36 + node_modules/strip-json-comments/index.js | 77 + node_modules/strip-json-comments/license | 9 + node_modules/strip-json-comments/package.json | 47 + node_modules/strip-json-comments/readme.md | 78 + node_modules/supports-color/browser.js | 5 + node_modules/supports-color/index.js | 135 + node_modules/supports-color/license | 9 + node_modules/supports-color/package.json | 53 + node_modules/supports-color/readme.md | 76 + .../supports-preserve-symlinks-flag/.eslintrc | 14 + .../.github/FUNDING.yml | 12 + .../supports-preserve-symlinks-flag/.nycrc | 9 + .../CHANGELOG.md | 22 + .../supports-preserve-symlinks-flag/LICENSE | 21 + .../supports-preserve-symlinks-flag/README.md | 42 + .../browser.js | 3 + .../supports-preserve-symlinks-flag/index.js | 9 + .../package.json | 70 + .../test/index.js | 29 + node_modules/symbol-tree/LICENSE | 0 node_modules/symbol-tree/README.md | 0 node_modules/symbol-tree/lib/SymbolTree.js | 0 .../symbol-tree/lib/SymbolTreeNode.js | 0 node_modules/symbol-tree/lib/TreeIterator.js | 0 node_modules/symbol-tree/lib/TreePosition.js | 0 node_modules/symbol-tree/package.json | 0 node_modules/test-exclude/CHANGELOG.md | 352 + node_modules/test-exclude/LICENSE.txt | 14 + node_modules/test-exclude/README.md | 96 + node_modules/test-exclude/index.js | 161 + .../test-exclude/is-outside-dir-posix.js | 7 + .../test-exclude/is-outside-dir-win32.js | 10 + node_modules/test-exclude/is-outside-dir.js | 7 + node_modules/test-exclude/package.json | 45 + node_modules/tmpl/lib/tmpl.js | 17 + node_modules/tmpl/license | 28 + node_modules/tmpl/package.json | 19 + node_modules/tmpl/readme.md | 10 + node_modules/to-fast-properties/index.js | 27 + node_modules/to-fast-properties/license | 10 + node_modules/to-fast-properties/package.json | 35 + node_modules/to-fast-properties/readme.md | 37 + node_modules/to-regex-range/LICENSE | 21 + node_modules/to-regex-range/README.md | 305 + node_modules/to-regex-range/index.js | 288 + node_modules/to-regex-range/package.json | 88 + node_modules/toidentifier/HISTORY.md | 0 node_modules/toidentifier/LICENSE | 0 node_modules/toidentifier/README.md | 0 node_modules/toidentifier/index.js | 0 node_modules/toidentifier/package.json | 0 node_modules/tough-cookie/LICENSE | 0 node_modules/tough-cookie/README.md | 0 node_modules/tough-cookie/lib/cookie.js | 0 node_modules/tough-cookie/lib/memstore.js | 0 node_modules/tough-cookie/lib/pathMatch.js | 0 .../tough-cookie/lib/permuteDomain.js | 0 .../tough-cookie/lib/pubsuffix-psl.js | 0 node_modules/tough-cookie/lib/store.js | 0 node_modules/tough-cookie/lib/utilHelper.js | 0 node_modules/tough-cookie/lib/validators.js | 0 node_modules/tough-cookie/lib/version.js | 0 node_modules/tough-cookie/package.json | 0 node_modules/tr46/LICENSE.md | 0 node_modules/tr46/README.md | 0 node_modules/tr46/index.js | 0 node_modules/tr46/lib/mappingTable.json | 0 node_modules/tr46/lib/regexes.js | 0 node_modules/tr46/lib/statusMapping.js | 0 node_modules/tr46/package.json | 0 node_modules/turndown/LICENSE | 0 node_modules/turndown/README.md | 0 node_modules/turndown/dist/turndown.js | 0 .../turndown/lib/turndown.browser.cjs.js | 0 .../turndown/lib/turndown.browser.es.js | 0 .../turndown/lib/turndown.browser.umd.js | 0 node_modules/turndown/lib/turndown.cjs.js | 0 node_modules/turndown/lib/turndown.es.js | 0 node_modules/turndown/lib/turndown.umd.js | 0 node_modules/turndown/package.json | 0 node_modules/type-check/LICENSE | 0 node_modules/type-check/README.md | 0 node_modules/type-check/lib/check.js | 0 node_modules/type-check/lib/index.js | 0 node_modules/type-check/lib/parse-type.js | 0 node_modules/type-check/package.json | 0 node_modules/type-detect/LICENSE | 19 + node_modules/type-detect/README.md | 228 + node_modules/type-detect/index.js | 378 + node_modules/type-detect/package.json | 1 + node_modules/type-detect/type-detect.js | 388 + node_modules/type-fest/base.d.ts | 39 + node_modules/type-fest/index.d.ts | 2 + node_modules/type-fest/license | 9 + node_modules/type-fest/package.json | 58 + node_modules/type-fest/readme.md | 760 + .../type-fest/source/async-return-type.d.ts | 23 + node_modules/type-fest/source/asyncify.d.ts | 31 + node_modules/type-fest/source/basic.d.ts | 51 + .../type-fest/source/conditional-except.d.ts | 43 + .../type-fest/source/conditional-keys.d.ts | 43 + .../type-fest/source/conditional-pick.d.ts | 42 + node_modules/type-fest/source/entries.d.ts | 57 + node_modules/type-fest/source/entry.d.ts | 60 + node_modules/type-fest/source/except.d.ts | 22 + .../type-fest/source/fixed-length-array.d.ts | 38 + .../type-fest/source/iterable-element.d.ts | 46 + .../type-fest/source/literal-union.d.ts | 33 + .../type-fest/source/merge-exclusive.d.ts | 39 + node_modules/type-fest/source/merge.d.ts | 25 + node_modules/type-fest/source/mutable.d.ts | 38 + node_modules/type-fest/source/opaque.d.ts | 65 + .../type-fest/source/package-json.d.ts | 611 + .../type-fest/source/partial-deep.d.ts | 72 + node_modules/type-fest/source/promisable.d.ts | 23 + .../type-fest/source/promise-value.d.ts | 27 + .../type-fest/source/readonly-deep.d.ts | 59 + .../source/require-at-least-one.d.ts | 33 + .../type-fest/source/require-exactly-one.d.ts | 35 + .../type-fest/source/set-optional.d.ts | 33 + .../type-fest/source/set-required.d.ts | 33 + .../type-fest/source/set-return-type.d.ts | 29 + node_modules/type-fest/source/simplify.d.ts | 4 + .../type-fest/source/stringified.d.ts | 21 + .../type-fest/source/tsconfig-json.d.ts | 870 + .../type-fest/source/typed-array.d.ts | 15 + .../source/union-to-intersection.d.ts | 58 + node_modules/type-fest/source/utilities.d.ts | 5 + node_modules/type-fest/source/value-of.d.ts | 40 + node_modules/type-fest/ts41/camel-case.d.ts | 64 + .../type-fest/ts41/delimiter-case.d.ts | 85 + node_modules/type-fest/ts41/get.d.ts | 131 + node_modules/type-fest/ts41/index.d.ts | 10 + node_modules/type-fest/ts41/kebab-case.d.ts | 36 + node_modules/type-fest/ts41/pascal-case.d.ts | 36 + node_modules/type-fest/ts41/snake-case.d.ts | 35 + node_modules/type-fest/ts41/utilities.d.ts | 8 + node_modules/type-is/HISTORY.md | 0 node_modules/type-is/LICENSE | 0 node_modules/type-is/README.md | 0 node_modules/type-is/index.js | 0 node_modules/type-is/package.json | 0 node_modules/universalify/LICENSE | 0 node_modules/universalify/README.md | 0 node_modules/universalify/index.js | 0 node_modules/universalify/package.json | 0 node_modules/unpipe/HISTORY.md | 0 node_modules/unpipe/LICENSE | 0 node_modules/unpipe/README.md | 0 node_modules/unpipe/index.js | 0 node_modules/unpipe/package.json | 0 node_modules/update-browserslist-db/LICENSE | 20 + node_modules/update-browserslist-db/README.md | 23 + .../check-npm-version.js | 16 + node_modules/update-browserslist-db/cli.js | 42 + .../update-browserslist-db/index.d.ts | 6 + node_modules/update-browserslist-db/index.js | 314 + .../update-browserslist-db/package.json | 38 + node_modules/update-browserslist-db/utils.js | 22 + node_modules/url-parse/LICENSE | 0 node_modules/url-parse/README.md | 0 node_modules/url-parse/dist/url-parse.js | 0 node_modules/url-parse/dist/url-parse.min.js | 0 .../url-parse/dist/url-parse.min.js.map | 0 node_modules/url-parse/index.js | 0 node_modules/url-parse/package.json | 0 node_modules/url/.npmignore | 0 node_modules/url/.travis.yml | 0 node_modules/url/.zuul.yml | 0 node_modules/url/LICENSE | 0 node_modules/url/README.md | 0 .../url/node_modules/punycode/LICENSE-MIT.txt | 0 .../url/node_modules/punycode/README.md | 0 .../url/node_modules/punycode/package.json | 0 .../url/node_modules/punycode/punycode.js | 0 node_modules/url/package.json | 0 node_modules/url/test.js | 0 node_modules/url/url.js | 0 node_modules/url/util.js | 0 node_modules/utils-merge/.npmignore | 0 node_modules/utils-merge/LICENSE | 0 node_modules/utils-merge/README.md | 0 node_modules/utils-merge/index.js | 0 node_modules/utils-merge/package.json | 0 node_modules/v8-to-istanbul/CHANGELOG.md | 403 + node_modules/v8-to-istanbul/LICENSE.txt | 14 + node_modules/v8-to-istanbul/README.md | 86 + node_modules/v8-to-istanbul/index.d.ts | 25 + node_modules/v8-to-istanbul/index.js | 5 + node_modules/v8-to-istanbul/lib/branch.js | 28 + node_modules/v8-to-istanbul/lib/function.js | 29 + node_modules/v8-to-istanbul/lib/line.js | 34 + node_modules/v8-to-istanbul/lib/range.js | 35 + node_modules/v8-to-istanbul/lib/source.js | 245 + .../v8-to-istanbul/lib/v8-to-istanbul.js | 315 + .../node_modules/convert-source-map/LICENSE | 23 + .../node_modules/convert-source-map/README.md | 123 + .../node_modules/convert-source-map/index.js | 179 + .../convert-source-map/package.json | 41 + node_modules/v8-to-istanbul/package.json | 49 + node_modules/vary/HISTORY.md | 0 node_modules/vary/LICENSE | 0 node_modules/vary/README.md | 0 node_modules/vary/index.js | 0 node_modules/vary/package.json | 0 node_modules/w3c-hr-time/CHANGELOG.md | 0 node_modules/w3c-hr-time/LICENSE.md | 0 node_modules/w3c-hr-time/README.md | 0 node_modules/w3c-hr-time/index.js | 0 .../w3c-hr-time/lib/calculate-clock-offset.js | 0 .../w3c-hr-time/lib/clock-is-accurate.js | 0 .../w3c-hr-time/lib/global-monotonic-clock.js | 0 node_modules/w3c-hr-time/lib/performance.js | 0 node_modules/w3c-hr-time/lib/utils.js | 0 node_modules/w3c-hr-time/package.json | 0 node_modules/w3c-xmlserializer/LICENSE.md | 0 node_modules/w3c-xmlserializer/README.md | 0 .../w3c-xmlserializer/lib/attributes.js | 0 .../w3c-xmlserializer/lib/constants.js | 0 .../w3c-xmlserializer/lib/serialize.js | 0 node_modules/w3c-xmlserializer/package.json | 0 node_modules/walker/.travis.yml | 3 + node_modules/walker/LICENSE | 13 + node_modules/walker/lib/walker.js | 111 + node_modules/walker/package.json | 27 + node_modules/walker/readme.md | 52 + node_modules/webidl-conversions/LICENSE.md | 0 node_modules/webidl-conversions/README.md | 0 node_modules/webidl-conversions/lib/index.js | 0 node_modules/webidl-conversions/package.json | 0 node_modules/whatwg-encoding/LICENSE.txt | 0 node_modules/whatwg-encoding/README.md | 0 .../whatwg-encoding/lib/labels-to-names.json | 0 .../whatwg-encoding/lib/supported-names.json | 0 .../whatwg-encoding/lib/whatwg-encoding.js | 0 node_modules/whatwg-encoding/package.json | 0 node_modules/whatwg-mimetype/LICENSE.txt | 0 node_modules/whatwg-mimetype/README.md | 0 node_modules/whatwg-mimetype/lib/mime-type.js | 0 node_modules/whatwg-mimetype/lib/parser.js | 0 .../whatwg-mimetype/lib/serializer.js | 0 node_modules/whatwg-mimetype/lib/utils.js | 0 node_modules/whatwg-mimetype/package.json | 0 node_modules/whatwg-url/LICENSE.txt | 0 node_modules/whatwg-url/README.md | 0 node_modules/whatwg-url/dist/Function.js | 0 node_modules/whatwg-url/dist/URL-impl.js | 0 node_modules/whatwg-url/dist/URL.js | 0 .../whatwg-url/dist/URLSearchParams-impl.js | 0 .../whatwg-url/dist/URLSearchParams.js | 0 node_modules/whatwg-url/dist/VoidFunction.js | 0 node_modules/whatwg-url/dist/encoding.js | 0 node_modules/whatwg-url/dist/infra.js | 0 .../whatwg-url/dist/percent-encoding.js | 0 .../whatwg-url/dist/url-state-machine.js | 0 node_modules/whatwg-url/dist/urlencoded.js | 0 node_modules/whatwg-url/dist/utils.js | 0 node_modules/whatwg-url/index.js | 0 node_modules/whatwg-url/package.json | 0 node_modules/whatwg-url/webidl2js-wrapper.js | 0 node_modules/which/CHANGELOG.md | 166 + node_modules/which/LICENSE | 15 + node_modules/which/README.md | 54 + node_modules/which/bin/node-which | 52 + node_modules/which/package.json | 43 + node_modules/which/which.js | 125 + node_modules/word-wrap/LICENSE | 0 node_modules/word-wrap/README.md | 0 node_modules/word-wrap/index.d.ts | 0 node_modules/word-wrap/index.js | 0 node_modules/word-wrap/package.json | 0 node_modules/wrap-ansi/index.js | 216 + node_modules/wrap-ansi/license | 9 + node_modules/wrap-ansi/package.json | 62 + node_modules/wrap-ansi/readme.md | 91 + node_modules/wrappy/LICENSE | 15 + node_modules/wrappy/README.md | 36 + node_modules/wrappy/package.json | 29 + node_modules/wrappy/wrappy.js | 33 + node_modules/write-file-atomic/LICENSE.md | 6 + node_modules/write-file-atomic/README.md | 91 + node_modules/write-file-atomic/lib/index.js | 267 + node_modules/write-file-atomic/package.json | 55 + node_modules/ws/LICENSE | 0 node_modules/ws/README.md | 0 node_modules/ws/browser.js | 0 node_modules/ws/index.js | 0 node_modules/ws/lib/buffer-util.js | 0 node_modules/ws/lib/constants.js | 0 node_modules/ws/lib/event-target.js | 0 node_modules/ws/lib/extension.js | 0 node_modules/ws/lib/limiter.js | 0 node_modules/ws/lib/permessage-deflate.js | 0 node_modules/ws/lib/receiver.js | 0 node_modules/ws/lib/sender.js | 0 node_modules/ws/lib/stream.js | 0 node_modules/ws/lib/validation.js | 0 node_modules/ws/lib/websocket-server.js | 0 node_modules/ws/lib/websocket.js | 0 node_modules/ws/package.json | 0 node_modules/xml-name-validator/LICENSE.txt | 0 node_modules/xml-name-validator/README.md | 0 .../lib/generated-parser.js | 0 .../xml-name-validator/lib/grammar.pegjs | 0 .../lib/xml-name-validator.js | 0 node_modules/xml-name-validator/package.json | 0 node_modules/xmlchars/LICENSE | 0 node_modules/xmlchars/README.md | 0 node_modules/xmlchars/package.json | 0 node_modules/xmlchars/xml/1.0/ed4.d.ts | 0 node_modules/xmlchars/xml/1.0/ed4.js | 0 node_modules/xmlchars/xml/1.0/ed4.js.map | 0 node_modules/xmlchars/xml/1.0/ed5.d.ts | 0 node_modules/xmlchars/xml/1.0/ed5.js | 0 node_modules/xmlchars/xml/1.0/ed5.js.map | 0 node_modules/xmlchars/xml/1.1/ed2.d.ts | 0 node_modules/xmlchars/xml/1.1/ed2.js | 0 node_modules/xmlchars/xml/1.1/ed2.js.map | 0 node_modules/xmlchars/xmlchars.d.ts | 0 node_modules/xmlchars/xmlchars.js | 0 node_modules/xmlchars/xmlchars.js.map | 0 node_modules/xmlchars/xmlns/1.0/ed3.d.ts | 0 node_modules/xmlchars/xmlns/1.0/ed3.js | 0 node_modules/xmlchars/xmlns/1.0/ed3.js.map | 0 node_modules/y18n/CHANGELOG.md | 100 + node_modules/y18n/LICENSE | 13 + node_modules/y18n/README.md | 127 + node_modules/y18n/build/index.cjs | 203 + node_modules/y18n/build/lib/cjs.js | 6 + node_modules/y18n/build/lib/index.js | 174 + .../y18n/build/lib/platform-shims/node.js | 19 + node_modules/y18n/index.mjs | 8 + node_modules/y18n/package.json | 70 + node_modules/yallist/LICENSE | 15 + node_modules/yallist/README.md | 204 + node_modules/yallist/iterator.js | 8 + node_modules/yallist/package.json | 29 + node_modules/yallist/yallist.js | 426 + node_modules/yargs-parser/CHANGELOG.md | 308 + node_modules/yargs-parser/LICENSE.txt | 14 + node_modules/yargs-parser/README.md | 518 + node_modules/yargs-parser/browser.js | 29 + node_modules/yargs-parser/build/index.cjs | 1050 ++ node_modules/yargs-parser/build/lib/index.js | 62 + .../yargs-parser/build/lib/string-utils.js | 65 + .../build/lib/tokenize-arg-string.js | 40 + .../build/lib/yargs-parser-types.js | 12 + .../yargs-parser/build/lib/yargs-parser.js | 1045 ++ node_modules/yargs-parser/package.json | 92 + node_modules/yargs/LICENSE | 21 + node_modules/yargs/README.md | 204 + node_modules/yargs/browser.mjs | 7 + node_modules/yargs/build/index.cjs | 1 + node_modules/yargs/build/lib/argsert.js | 62 + node_modules/yargs/build/lib/command.js | 447 + .../yargs/build/lib/completion-templates.js | 48 + node_modules/yargs/build/lib/completion.js | 236 + node_modules/yargs/build/lib/middleware.js | 88 + node_modules/yargs/build/lib/parse-command.js | 32 + .../yargs/build/lib/typings/common-types.js | 9 + .../build/lib/typings/yargs-parser-types.js | 1 + node_modules/yargs/build/lib/usage.js | 582 + .../yargs/build/lib/utils/apply-extends.js | 59 + .../yargs/build/lib/utils/is-promise.js | 5 + .../yargs/build/lib/utils/levenshtein.js | 34 + .../build/lib/utils/maybe-async-result.js | 17 + .../yargs/build/lib/utils/obj-filter.js | 10 + .../yargs/build/lib/utils/process-argv.js | 17 + .../yargs/build/lib/utils/set-blocking.js | 12 + .../yargs/build/lib/utils/which-module.js | 10 + node_modules/yargs/build/lib/validation.js | 305 + node_modules/yargs/build/lib/yargs-factory.js | 1501 ++ node_modules/yargs/build/lib/yerror.js | 9 + node_modules/yargs/helpers/helpers.mjs | 10 + node_modules/yargs/helpers/index.js | 14 + node_modules/yargs/helpers/package.json | 3 + node_modules/yargs/index.cjs | 53 + node_modules/yargs/index.mjs | 8 + .../yargs/lib/platform-shims/browser.mjs | 95 + node_modules/yargs/lib/platform-shims/esm.mjs | 73 + node_modules/yargs/locales/be.json | 46 + node_modules/yargs/locales/cs.json | 51 + node_modules/yargs/locales/de.json | 46 + node_modules/yargs/locales/en.json | 51 + node_modules/yargs/locales/es.json | 46 + node_modules/yargs/locales/fi.json | 49 + node_modules/yargs/locales/fr.json | 53 + node_modules/yargs/locales/hi.json | 49 + node_modules/yargs/locales/hu.json | 46 + node_modules/yargs/locales/id.json | 50 + node_modules/yargs/locales/it.json | 46 + node_modules/yargs/locales/ja.json | 51 + node_modules/yargs/locales/ko.json | 49 + node_modules/yargs/locales/nb.json | 44 + node_modules/yargs/locales/nl.json | 49 + node_modules/yargs/locales/nn.json | 44 + node_modules/yargs/locales/pirate.json | 13 + node_modules/yargs/locales/pl.json | 49 + node_modules/yargs/locales/pt.json | 45 + node_modules/yargs/locales/pt_BR.json | 48 + node_modules/yargs/locales/ru.json | 51 + node_modules/yargs/locales/th.json | 46 + node_modules/yargs/locales/tr.json | 48 + node_modules/yargs/locales/uk_UA.json | 51 + node_modules/yargs/locales/uz.json | 52 + node_modules/yargs/locales/zh_CN.json | 48 + node_modules/yargs/locales/zh_TW.json | 51 + node_modules/yargs/package.json | 123 + node_modules/yargs/yargs | 9 + node_modules/yargs/yargs.mjs | 10 + node_modules/yocto-queue/index.d.ts | 56 + node_modules/yocto-queue/index.js | 68 + node_modules/yocto-queue/license | 9 + node_modules/yocto-queue/package.json | 43 + node_modules/yocto-queue/readme.md | 64 + package-lock.json | 6006 ++++++- package.json | 8 +- tests/url_to_markdown_apple_dev_docs.test.js | 9 + tests/url_to_markdown_common_filters.test.js | 9 + tests/url_to_markdown_formatters.test.js | 35 + tests/url_to_markdown_processor.test.js | 31 + tests/url_to_markdown_readers.test.js | 16 + url_to_markdown_readers.js | 3 + 6447 files changed, 394148 insertions(+), 5 deletions(-) create mode 120000 node_modules/.bin/browserslist create mode 120000 node_modules/.bin/browserslist-lint create mode 120000 node_modules/.bin/import-local-fixture create mode 120000 node_modules/.bin/jest create mode 120000 node_modules/.bin/js-yaml create mode 120000 node_modules/.bin/jsesc create mode 120000 node_modules/.bin/json5 create mode 120000 node_modules/.bin/node-which create mode 120000 node_modules/.bin/parser create mode 120000 node_modules/.bin/resolve create mode 120000 node_modules/.bin/semver mode change 100644 => 100755 node_modules/.package-lock.json mode change 100644 => 100755 node_modules/@7c/validurl/README.md mode change 100644 => 100755 node_modules/@7c/validurl/package.json mode change 100644 => 100755 node_modules/@7c/validurl/tests/validURL.js mode change 100644 => 100755 node_modules/@7c/validurl/validURL.js create mode 100755 node_modules/@ampproject/remapping/LICENSE create mode 100755 node_modules/@ampproject/remapping/README.md create mode 100755 node_modules/@ampproject/remapping/dist/remapping.mjs create mode 100755 node_modules/@ampproject/remapping/dist/remapping.mjs.map create mode 100755 node_modules/@ampproject/remapping/dist/remapping.umd.js create mode 100755 node_modules/@ampproject/remapping/dist/remapping.umd.js.map create mode 100755 node_modules/@ampproject/remapping/dist/types/build-source-map-tree.d.ts create mode 100755 node_modules/@ampproject/remapping/dist/types/remapping.d.ts create mode 100755 node_modules/@ampproject/remapping/dist/types/source-map-tree.d.ts create mode 100755 node_modules/@ampproject/remapping/dist/types/source-map.d.ts create mode 100755 node_modules/@ampproject/remapping/dist/types/types.d.ts create mode 100755 node_modules/@ampproject/remapping/package.json create mode 100755 node_modules/@babel/code-frame/LICENSE create mode 100755 node_modules/@babel/code-frame/README.md create mode 100755 node_modules/@babel/code-frame/lib/index.js create mode 100755 node_modules/@babel/code-frame/package.json create mode 100755 node_modules/@babel/compat-data/LICENSE create mode 100755 node_modules/@babel/compat-data/README.md create mode 100755 node_modules/@babel/compat-data/corejs2-built-ins.js create mode 100755 node_modules/@babel/compat-data/corejs3-shipped-proposals.js create mode 100755 node_modules/@babel/compat-data/data/corejs2-built-ins.json create mode 100755 node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json create mode 100755 node_modules/@babel/compat-data/data/native-modules.json create mode 100755 node_modules/@babel/compat-data/data/overlapping-plugins.json create mode 100755 node_modules/@babel/compat-data/data/plugin-bugfixes.json create mode 100755 node_modules/@babel/compat-data/data/plugins.json create mode 100755 node_modules/@babel/compat-data/native-modules.js create mode 100755 node_modules/@babel/compat-data/overlapping-plugins.js create mode 100755 node_modules/@babel/compat-data/package.json create mode 100755 node_modules/@babel/compat-data/plugin-bugfixes.js create mode 100755 node_modules/@babel/compat-data/plugins.js create mode 100755 node_modules/@babel/core/LICENSE create mode 100755 node_modules/@babel/core/README.md create mode 100755 node_modules/@babel/core/cjs-proxy.cjs create mode 100755 node_modules/@babel/core/lib/config/cache-contexts.js create mode 100755 node_modules/@babel/core/lib/config/cache-contexts.js.map create mode 100755 node_modules/@babel/core/lib/config/caching.js create mode 100755 node_modules/@babel/core/lib/config/caching.js.map create mode 100755 node_modules/@babel/core/lib/config/config-chain.js create mode 100755 node_modules/@babel/core/lib/config/config-chain.js.map create mode 100755 node_modules/@babel/core/lib/config/config-descriptors.js create mode 100755 node_modules/@babel/core/lib/config/config-descriptors.js.map create mode 100755 node_modules/@babel/core/lib/config/files/configuration.js create mode 100755 node_modules/@babel/core/lib/config/files/configuration.js.map create mode 100755 node_modules/@babel/core/lib/config/files/import-meta-resolve.js create mode 100755 node_modules/@babel/core/lib/config/files/import-meta-resolve.js.map create mode 100755 node_modules/@babel/core/lib/config/files/import.cjs create mode 100755 node_modules/@babel/core/lib/config/files/import.cjs.map create mode 100755 node_modules/@babel/core/lib/config/files/index-browser.js create mode 100755 node_modules/@babel/core/lib/config/files/index-browser.js.map create mode 100755 node_modules/@babel/core/lib/config/files/index.js create mode 100755 node_modules/@babel/core/lib/config/files/index.js.map create mode 100755 node_modules/@babel/core/lib/config/files/module-types.js create mode 100755 node_modules/@babel/core/lib/config/files/module-types.js.map create mode 100755 node_modules/@babel/core/lib/config/files/package.js create mode 100755 node_modules/@babel/core/lib/config/files/package.js.map create mode 100755 node_modules/@babel/core/lib/config/files/plugins.js create mode 100755 node_modules/@babel/core/lib/config/files/plugins.js.map create mode 100755 node_modules/@babel/core/lib/config/files/types.js create mode 100755 node_modules/@babel/core/lib/config/files/types.js.map create mode 100755 node_modules/@babel/core/lib/config/files/utils.js create mode 100755 node_modules/@babel/core/lib/config/files/utils.js.map create mode 100755 node_modules/@babel/core/lib/config/full.js create mode 100755 node_modules/@babel/core/lib/config/full.js.map create mode 100755 node_modules/@babel/core/lib/config/helpers/config-api.js create mode 100755 node_modules/@babel/core/lib/config/helpers/config-api.js.map create mode 100755 node_modules/@babel/core/lib/config/helpers/deep-array.js create mode 100755 node_modules/@babel/core/lib/config/helpers/deep-array.js.map create mode 100755 node_modules/@babel/core/lib/config/helpers/environment.js create mode 100755 node_modules/@babel/core/lib/config/helpers/environment.js.map create mode 100755 node_modules/@babel/core/lib/config/index.js create mode 100755 node_modules/@babel/core/lib/config/index.js.map create mode 100755 node_modules/@babel/core/lib/config/item.js create mode 100755 node_modules/@babel/core/lib/config/item.js.map create mode 100755 node_modules/@babel/core/lib/config/partial.js create mode 100755 node_modules/@babel/core/lib/config/partial.js.map create mode 100755 node_modules/@babel/core/lib/config/pattern-to-regex.js create mode 100755 node_modules/@babel/core/lib/config/pattern-to-regex.js.map create mode 100755 node_modules/@babel/core/lib/config/plugin.js create mode 100755 node_modules/@babel/core/lib/config/plugin.js.map create mode 100755 node_modules/@babel/core/lib/config/printer.js create mode 100755 node_modules/@babel/core/lib/config/printer.js.map create mode 100755 node_modules/@babel/core/lib/config/resolve-targets-browser.js create mode 100755 node_modules/@babel/core/lib/config/resolve-targets-browser.js.map create mode 100755 node_modules/@babel/core/lib/config/resolve-targets.js create mode 100755 node_modules/@babel/core/lib/config/resolve-targets.js.map create mode 100755 node_modules/@babel/core/lib/config/util.js create mode 100755 node_modules/@babel/core/lib/config/util.js.map create mode 100755 node_modules/@babel/core/lib/config/validation/option-assertions.js create mode 100755 node_modules/@babel/core/lib/config/validation/option-assertions.js.map create mode 100755 node_modules/@babel/core/lib/config/validation/options.js create mode 100755 node_modules/@babel/core/lib/config/validation/options.js.map create mode 100755 node_modules/@babel/core/lib/config/validation/plugins.js create mode 100755 node_modules/@babel/core/lib/config/validation/plugins.js.map create mode 100755 node_modules/@babel/core/lib/config/validation/removed.js create mode 100755 node_modules/@babel/core/lib/config/validation/removed.js.map create mode 100755 node_modules/@babel/core/lib/errors/config-error.js create mode 100755 node_modules/@babel/core/lib/errors/config-error.js.map create mode 100755 node_modules/@babel/core/lib/errors/rewrite-stack-trace.js create mode 100755 node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map create mode 100755 node_modules/@babel/core/lib/gensync-utils/async.js create mode 100755 node_modules/@babel/core/lib/gensync-utils/async.js.map create mode 100755 node_modules/@babel/core/lib/gensync-utils/fs.js create mode 100755 node_modules/@babel/core/lib/gensync-utils/fs.js.map create mode 100755 node_modules/@babel/core/lib/gensync-utils/functional.js create mode 100755 node_modules/@babel/core/lib/gensync-utils/functional.js.map create mode 100755 node_modules/@babel/core/lib/index.js create mode 100755 node_modules/@babel/core/lib/index.js.map create mode 100755 node_modules/@babel/core/lib/parse.js create mode 100755 node_modules/@babel/core/lib/parse.js.map create mode 100755 node_modules/@babel/core/lib/parser/index.js create mode 100755 node_modules/@babel/core/lib/parser/index.js.map create mode 100755 node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js create mode 100755 node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map create mode 100755 node_modules/@babel/core/lib/tools/build-external-helpers.js create mode 100755 node_modules/@babel/core/lib/tools/build-external-helpers.js.map create mode 100755 node_modules/@babel/core/lib/transform-ast.js create mode 100755 node_modules/@babel/core/lib/transform-ast.js.map create mode 100755 node_modules/@babel/core/lib/transform-file-browser.js create mode 100755 node_modules/@babel/core/lib/transform-file-browser.js.map create mode 100755 node_modules/@babel/core/lib/transform-file.js create mode 100755 node_modules/@babel/core/lib/transform-file.js.map create mode 100755 node_modules/@babel/core/lib/transform.js create mode 100755 node_modules/@babel/core/lib/transform.js.map create mode 100755 node_modules/@babel/core/lib/transformation/block-hoist-plugin.js create mode 100755 node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map create mode 100755 node_modules/@babel/core/lib/transformation/file/file.js create mode 100755 node_modules/@babel/core/lib/transformation/file/file.js.map create mode 100755 node_modules/@babel/core/lib/transformation/file/generate.js create mode 100755 node_modules/@babel/core/lib/transformation/file/generate.js.map create mode 100755 node_modules/@babel/core/lib/transformation/file/merge-map.js create mode 100755 node_modules/@babel/core/lib/transformation/file/merge-map.js.map create mode 100755 node_modules/@babel/core/lib/transformation/index.js create mode 100755 node_modules/@babel/core/lib/transformation/index.js.map create mode 100755 node_modules/@babel/core/lib/transformation/normalize-file.js create mode 100755 node_modules/@babel/core/lib/transformation/normalize-file.js.map create mode 100755 node_modules/@babel/core/lib/transformation/normalize-opts.js create mode 100755 node_modules/@babel/core/lib/transformation/normalize-opts.js.map create mode 100755 node_modules/@babel/core/lib/transformation/plugin-pass.js create mode 100755 node_modules/@babel/core/lib/transformation/plugin-pass.js.map create mode 100755 node_modules/@babel/core/lib/transformation/util/clone-deep.js create mode 100755 node_modules/@babel/core/lib/transformation/util/clone-deep.js.map create mode 100755 node_modules/@babel/core/lib/vendor/import-meta-resolve.js create mode 100755 node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map create mode 100755 node_modules/@babel/core/node_modules/convert-source-map/LICENSE create mode 100755 node_modules/@babel/core/node_modules/convert-source-map/README.md create mode 100755 node_modules/@babel/core/node_modules/convert-source-map/index.js create mode 100755 node_modules/@babel/core/node_modules/convert-source-map/package.json create mode 100755 node_modules/@babel/core/node_modules/debug/LICENSE create mode 100755 node_modules/@babel/core/node_modules/debug/README.md create mode 100755 node_modules/@babel/core/node_modules/debug/package.json create mode 100755 node_modules/@babel/core/node_modules/debug/src/browser.js create mode 100755 node_modules/@babel/core/node_modules/debug/src/common.js create mode 100755 node_modules/@babel/core/node_modules/debug/src/index.js create mode 100755 node_modules/@babel/core/node_modules/debug/src/node.js create mode 100755 node_modules/@babel/core/node_modules/ms/index.js create mode 100755 node_modules/@babel/core/node_modules/ms/license.md create mode 100755 node_modules/@babel/core/node_modules/ms/package.json create mode 100755 node_modules/@babel/core/node_modules/ms/readme.md create mode 100755 node_modules/@babel/core/package.json create mode 100755 node_modules/@babel/core/src/config/files/index-browser.ts create mode 100755 node_modules/@babel/core/src/config/files/index.ts create mode 100755 node_modules/@babel/core/src/config/resolve-targets-browser.ts create mode 100755 node_modules/@babel/core/src/config/resolve-targets.ts create mode 100755 node_modules/@babel/core/src/transform-file-browser.ts create mode 100755 node_modules/@babel/core/src/transform-file.ts create mode 100755 node_modules/@babel/generator/LICENSE create mode 100755 node_modules/@babel/generator/README.md create mode 100755 node_modules/@babel/generator/lib/buffer.js create mode 100755 node_modules/@babel/generator/lib/buffer.js.map create mode 100755 node_modules/@babel/generator/lib/generators/base.js create mode 100755 node_modules/@babel/generator/lib/generators/base.js.map create mode 100755 node_modules/@babel/generator/lib/generators/classes.js create mode 100755 node_modules/@babel/generator/lib/generators/classes.js.map create mode 100755 node_modules/@babel/generator/lib/generators/expressions.js create mode 100755 node_modules/@babel/generator/lib/generators/expressions.js.map create mode 100755 node_modules/@babel/generator/lib/generators/flow.js create mode 100755 node_modules/@babel/generator/lib/generators/flow.js.map create mode 100755 node_modules/@babel/generator/lib/generators/index.js create mode 100755 node_modules/@babel/generator/lib/generators/index.js.map create mode 100755 node_modules/@babel/generator/lib/generators/jsx.js create mode 100755 node_modules/@babel/generator/lib/generators/jsx.js.map create mode 100755 node_modules/@babel/generator/lib/generators/methods.js create mode 100755 node_modules/@babel/generator/lib/generators/methods.js.map create mode 100755 node_modules/@babel/generator/lib/generators/modules.js create mode 100755 node_modules/@babel/generator/lib/generators/modules.js.map create mode 100755 node_modules/@babel/generator/lib/generators/statements.js create mode 100755 node_modules/@babel/generator/lib/generators/statements.js.map create mode 100755 node_modules/@babel/generator/lib/generators/template-literals.js create mode 100755 node_modules/@babel/generator/lib/generators/template-literals.js.map create mode 100755 node_modules/@babel/generator/lib/generators/types.js create mode 100755 node_modules/@babel/generator/lib/generators/types.js.map create mode 100755 node_modules/@babel/generator/lib/generators/typescript.js create mode 100755 node_modules/@babel/generator/lib/generators/typescript.js.map create mode 100755 node_modules/@babel/generator/lib/index.js create mode 100755 node_modules/@babel/generator/lib/index.js.map create mode 100755 node_modules/@babel/generator/lib/node/index.js create mode 100755 node_modules/@babel/generator/lib/node/index.js.map create mode 100755 node_modules/@babel/generator/lib/node/parentheses.js create mode 100755 node_modules/@babel/generator/lib/node/parentheses.js.map create mode 100755 node_modules/@babel/generator/lib/node/whitespace.js create mode 100755 node_modules/@babel/generator/lib/node/whitespace.js.map create mode 100755 node_modules/@babel/generator/lib/printer.js create mode 100755 node_modules/@babel/generator/lib/printer.js.map create mode 100755 node_modules/@babel/generator/lib/source-map.js create mode 100755 node_modules/@babel/generator/lib/source-map.js.map create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/LICENSE create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/README.md create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/package.json create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/src/gen-mapping.ts create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/src/sourcemap-segment.ts create mode 100755 node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/src/types.ts create mode 100755 node_modules/@babel/generator/package.json create mode 100755 node_modules/@babel/helper-compilation-targets/LICENSE create mode 100755 node_modules/@babel/helper-compilation-targets/README.md create mode 100755 node_modules/@babel/helper-compilation-targets/lib/debug.js create mode 100755 node_modules/@babel/helper-compilation-targets/lib/debug.js.map create mode 100755 node_modules/@babel/helper-compilation-targets/lib/filter-items.js create mode 100755 node_modules/@babel/helper-compilation-targets/lib/filter-items.js.map create mode 100755 node_modules/@babel/helper-compilation-targets/lib/index.js create mode 100755 node_modules/@babel/helper-compilation-targets/lib/index.js.map create mode 100755 node_modules/@babel/helper-compilation-targets/lib/options.js create mode 100755 node_modules/@babel/helper-compilation-targets/lib/options.js.map create mode 100755 node_modules/@babel/helper-compilation-targets/lib/pretty.js create mode 100755 node_modules/@babel/helper-compilation-targets/lib/pretty.js.map create mode 100755 node_modules/@babel/helper-compilation-targets/lib/targets.js create mode 100755 node_modules/@babel/helper-compilation-targets/lib/targets.js.map create mode 100755 node_modules/@babel/helper-compilation-targets/lib/utils.js create mode 100755 node_modules/@babel/helper-compilation-targets/lib/utils.js.map create mode 100755 node_modules/@babel/helper-compilation-targets/package.json create mode 100755 node_modules/@babel/helper-environment-visitor/LICENSE create mode 100755 node_modules/@babel/helper-environment-visitor/README.md create mode 100755 node_modules/@babel/helper-environment-visitor/lib/index.js create mode 100755 node_modules/@babel/helper-environment-visitor/package.json create mode 100755 node_modules/@babel/helper-function-name/LICENSE create mode 100755 node_modules/@babel/helper-function-name/README.md create mode 100755 node_modules/@babel/helper-function-name/lib/index.js create mode 100755 node_modules/@babel/helper-function-name/lib/index.js.map create mode 100755 node_modules/@babel/helper-function-name/package.json create mode 100755 node_modules/@babel/helper-hoist-variables/LICENSE create mode 100755 node_modules/@babel/helper-hoist-variables/README.md create mode 100755 node_modules/@babel/helper-hoist-variables/lib/index.js create mode 100755 node_modules/@babel/helper-hoist-variables/package.json create mode 100755 node_modules/@babel/helper-module-imports/LICENSE create mode 100755 node_modules/@babel/helper-module-imports/README.md create mode 100755 node_modules/@babel/helper-module-imports/lib/import-builder.js create mode 100755 node_modules/@babel/helper-module-imports/lib/import-injector.js create mode 100755 node_modules/@babel/helper-module-imports/lib/index.js create mode 100755 node_modules/@babel/helper-module-imports/lib/is-module.js create mode 100755 node_modules/@babel/helper-module-imports/package.json create mode 100755 node_modules/@babel/helper-module-transforms/LICENSE create mode 100755 node_modules/@babel/helper-module-transforms/README.md create mode 100755 node_modules/@babel/helper-module-transforms/lib/dynamic-import.js create mode 100755 node_modules/@babel/helper-module-transforms/lib/dynamic-import.js.map create mode 100755 node_modules/@babel/helper-module-transforms/lib/get-module-name.js create mode 100755 node_modules/@babel/helper-module-transforms/lib/get-module-name.js.map create mode 100755 node_modules/@babel/helper-module-transforms/lib/index.js create mode 100755 node_modules/@babel/helper-module-transforms/lib/index.js.map create mode 100755 node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js create mode 100755 node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js.map create mode 100755 node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js create mode 100755 node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js.map create mode 100755 node_modules/@babel/helper-module-transforms/lib/rewrite-this.js create mode 100755 node_modules/@babel/helper-module-transforms/lib/rewrite-this.js.map create mode 100755 node_modules/@babel/helper-module-transforms/package.json create mode 100755 node_modules/@babel/helper-plugin-utils/LICENSE create mode 100755 node_modules/@babel/helper-plugin-utils/README.md create mode 100755 node_modules/@babel/helper-plugin-utils/lib/index.js create mode 100755 node_modules/@babel/helper-plugin-utils/lib/index.js.map create mode 100755 node_modules/@babel/helper-plugin-utils/package.json create mode 100755 node_modules/@babel/helper-simple-access/LICENSE create mode 100755 node_modules/@babel/helper-simple-access/README.md create mode 100755 node_modules/@babel/helper-simple-access/lib/index.js create mode 100755 node_modules/@babel/helper-simple-access/lib/index.js.map create mode 100755 node_modules/@babel/helper-simple-access/package.json create mode 100755 node_modules/@babel/helper-split-export-declaration/LICENSE create mode 100755 node_modules/@babel/helper-split-export-declaration/README.md create mode 100755 node_modules/@babel/helper-split-export-declaration/lib/index.js create mode 100755 node_modules/@babel/helper-split-export-declaration/package.json create mode 100755 node_modules/@babel/helper-string-parser/LICENSE create mode 100755 node_modules/@babel/helper-string-parser/README.md create mode 100755 node_modules/@babel/helper-string-parser/lib/index.js create mode 100755 node_modules/@babel/helper-string-parser/lib/index.js.map create mode 100755 node_modules/@babel/helper-string-parser/package.json create mode 100755 node_modules/@babel/helper-validator-identifier/LICENSE create mode 100755 node_modules/@babel/helper-validator-identifier/README.md create mode 100755 node_modules/@babel/helper-validator-identifier/lib/identifier.js create mode 100755 node_modules/@babel/helper-validator-identifier/lib/identifier.js.map create mode 100755 node_modules/@babel/helper-validator-identifier/lib/index.js create mode 100755 node_modules/@babel/helper-validator-identifier/lib/index.js.map create mode 100755 node_modules/@babel/helper-validator-identifier/lib/keyword.js create mode 100755 node_modules/@babel/helper-validator-identifier/lib/keyword.js.map create mode 100755 node_modules/@babel/helper-validator-identifier/package.json create mode 100755 node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js create mode 100755 node_modules/@babel/helper-validator-option/LICENSE create mode 100755 node_modules/@babel/helper-validator-option/README.md create mode 100755 node_modules/@babel/helper-validator-option/lib/find-suggestion.js create mode 100755 node_modules/@babel/helper-validator-option/lib/index.js create mode 100755 node_modules/@babel/helper-validator-option/lib/validator.js create mode 100755 node_modules/@babel/helper-validator-option/package.json create mode 100755 node_modules/@babel/helpers/LICENSE create mode 100755 node_modules/@babel/helpers/README.md create mode 100755 node_modules/@babel/helpers/lib/helpers-generated.js create mode 100755 node_modules/@babel/helpers/lib/helpers-generated.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers.js create mode 100755 node_modules/@babel/helpers/lib/helpers.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/AsyncGenerator.js create mode 100755 node_modules/@babel/helpers/lib/helpers/AsyncGenerator.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/OverloadYield.js create mode 100755 node_modules/@babel/helpers/lib/helpers/OverloadYield.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/applyDecs.js create mode 100755 node_modules/@babel/helpers/lib/helpers/applyDecs.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/applyDecs2203.js create mode 100755 node_modules/@babel/helpers/lib/helpers/applyDecs2203.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/asyncGeneratorDelegate.js create mode 100755 node_modules/@babel/helpers/lib/helpers/asyncGeneratorDelegate.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/asyncIterator.js create mode 100755 node_modules/@babel/helpers/lib/helpers/asyncIterator.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/awaitAsyncGenerator.js create mode 100755 node_modules/@babel/helpers/lib/helpers/awaitAsyncGenerator.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/checkInRHS.js create mode 100755 node_modules/@babel/helpers/lib/helpers/checkInRHS.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/defineAccessor.js create mode 100755 node_modules/@babel/helpers/lib/helpers/defineAccessor.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/iterableToArrayLimit.js create mode 100755 node_modules/@babel/helpers/lib/helpers/iterableToArrayLimit.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/iterableToArrayLimitLoose.js create mode 100755 node_modules/@babel/helpers/lib/helpers/iterableToArrayLimitLoose.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/jsx.js create mode 100755 node_modules/@babel/helpers/lib/helpers/jsx.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/objectSpread2.js create mode 100755 node_modules/@babel/helpers/lib/helpers/objectSpread2.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/regeneratorRuntime.js create mode 100755 node_modules/@babel/helpers/lib/helpers/regeneratorRuntime.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/typeof.js create mode 100755 node_modules/@babel/helpers/lib/helpers/typeof.js.map create mode 100755 node_modules/@babel/helpers/lib/helpers/wrapRegExp.js create mode 100755 node_modules/@babel/helpers/lib/helpers/wrapRegExp.js.map create mode 100755 node_modules/@babel/helpers/lib/index.js create mode 100755 node_modules/@babel/helpers/lib/index.js.map create mode 100755 node_modules/@babel/helpers/package.json create mode 100755 node_modules/@babel/helpers/scripts/generate-helpers.js create mode 100755 node_modules/@babel/helpers/scripts/generate-regenerator-runtime.js create mode 100755 node_modules/@babel/helpers/scripts/package.json create mode 100755 node_modules/@babel/highlight/LICENSE create mode 100755 node_modules/@babel/highlight/README.md create mode 100755 node_modules/@babel/highlight/lib/index.js create mode 100755 node_modules/@babel/highlight/node_modules/ansi-styles/index.js create mode 100755 node_modules/@babel/highlight/node_modules/ansi-styles/license create mode 100755 node_modules/@babel/highlight/node_modules/ansi-styles/package.json create mode 100755 node_modules/@babel/highlight/node_modules/ansi-styles/readme.md create mode 100755 node_modules/@babel/highlight/node_modules/chalk/index.js create mode 100755 node_modules/@babel/highlight/node_modules/chalk/index.js.flow create mode 100755 node_modules/@babel/highlight/node_modules/chalk/license create mode 100755 node_modules/@babel/highlight/node_modules/chalk/package.json create mode 100755 node_modules/@babel/highlight/node_modules/chalk/readme.md create mode 100755 node_modules/@babel/highlight/node_modules/chalk/templates.js create mode 100755 node_modules/@babel/highlight/node_modules/chalk/types/index.d.ts create mode 100755 node_modules/@babel/highlight/node_modules/color-convert/CHANGELOG.md create mode 100755 node_modules/@babel/highlight/node_modules/color-convert/LICENSE create mode 100755 node_modules/@babel/highlight/node_modules/color-convert/README.md create mode 100755 node_modules/@babel/highlight/node_modules/color-convert/conversions.js create mode 100755 node_modules/@babel/highlight/node_modules/color-convert/index.js create mode 100755 node_modules/@babel/highlight/node_modules/color-convert/package.json create mode 100755 node_modules/@babel/highlight/node_modules/color-convert/route.js create mode 100755 node_modules/@babel/highlight/node_modules/color-name/.eslintrc.json create mode 100755 node_modules/@babel/highlight/node_modules/color-name/.npmignore create mode 100755 node_modules/@babel/highlight/node_modules/color-name/LICENSE create mode 100755 node_modules/@babel/highlight/node_modules/color-name/README.md create mode 100755 node_modules/@babel/highlight/node_modules/color-name/index.js create mode 100755 node_modules/@babel/highlight/node_modules/color-name/package.json create mode 100755 node_modules/@babel/highlight/node_modules/color-name/test.js create mode 100755 node_modules/@babel/highlight/node_modules/escape-string-regexp/index.js create mode 100755 node_modules/@babel/highlight/node_modules/escape-string-regexp/license create mode 100755 node_modules/@babel/highlight/node_modules/escape-string-regexp/package.json create mode 100755 node_modules/@babel/highlight/node_modules/escape-string-regexp/readme.md create mode 100755 node_modules/@babel/highlight/node_modules/has-flag/index.js create mode 100755 node_modules/@babel/highlight/node_modules/has-flag/license create mode 100755 node_modules/@babel/highlight/node_modules/has-flag/package.json create mode 100755 node_modules/@babel/highlight/node_modules/has-flag/readme.md create mode 100755 node_modules/@babel/highlight/node_modules/supports-color/browser.js create mode 100755 node_modules/@babel/highlight/node_modules/supports-color/index.js create mode 100755 node_modules/@babel/highlight/node_modules/supports-color/license create mode 100755 node_modules/@babel/highlight/node_modules/supports-color/package.json create mode 100755 node_modules/@babel/highlight/node_modules/supports-color/readme.md create mode 100755 node_modules/@babel/highlight/package.json create mode 100755 node_modules/@babel/parser/CHANGELOG.md create mode 100755 node_modules/@babel/parser/LICENSE create mode 100755 node_modules/@babel/parser/README.md create mode 100755 node_modules/@babel/parser/bin/babel-parser.js create mode 100755 node_modules/@babel/parser/index.cjs create mode 100755 node_modules/@babel/parser/lib/index.js create mode 100755 node_modules/@babel/parser/lib/index.js.map create mode 100755 node_modules/@babel/parser/package.json create mode 100755 node_modules/@babel/parser/typings/babel-parser.d.ts create mode 100755 node_modules/@babel/plugin-syntax-async-generators/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-async-generators/README.md create mode 100755 node_modules/@babel/plugin-syntax-async-generators/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-async-generators/package.json create mode 100755 node_modules/@babel/plugin-syntax-bigint/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-bigint/README.md create mode 100755 node_modules/@babel/plugin-syntax-bigint/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-bigint/package.json create mode 100755 node_modules/@babel/plugin-syntax-class-properties/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-class-properties/README.md create mode 100755 node_modules/@babel/plugin-syntax-class-properties/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-class-properties/package.json create mode 100755 node_modules/@babel/plugin-syntax-import-meta/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-import-meta/README.md create mode 100755 node_modules/@babel/plugin-syntax-import-meta/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-import-meta/package.json create mode 100755 node_modules/@babel/plugin-syntax-json-strings/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-json-strings/README.md create mode 100755 node_modules/@babel/plugin-syntax-json-strings/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-json-strings/package.json create mode 100755 node_modules/@babel/plugin-syntax-jsx/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-jsx/README.md create mode 100755 node_modules/@babel/plugin-syntax-jsx/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-jsx/package.json create mode 100755 node_modules/@babel/plugin-syntax-logical-assignment-operators/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-logical-assignment-operators/README.md create mode 100755 node_modules/@babel/plugin-syntax-logical-assignment-operators/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-logical-assignment-operators/package.json create mode 100755 node_modules/@babel/plugin-syntax-nullish-coalescing-operator/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-nullish-coalescing-operator/README.md create mode 100755 node_modules/@babel/plugin-syntax-nullish-coalescing-operator/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-nullish-coalescing-operator/package.json create mode 100755 node_modules/@babel/plugin-syntax-numeric-separator/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-numeric-separator/README.md create mode 100755 node_modules/@babel/plugin-syntax-numeric-separator/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-numeric-separator/package.json create mode 100755 node_modules/@babel/plugin-syntax-object-rest-spread/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-object-rest-spread/README.md create mode 100755 node_modules/@babel/plugin-syntax-object-rest-spread/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-object-rest-spread/package.json create mode 100755 node_modules/@babel/plugin-syntax-optional-catch-binding/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-optional-catch-binding/README.md create mode 100755 node_modules/@babel/plugin-syntax-optional-catch-binding/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-optional-catch-binding/package.json create mode 100755 node_modules/@babel/plugin-syntax-optional-chaining/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-optional-chaining/README.md create mode 100755 node_modules/@babel/plugin-syntax-optional-chaining/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-optional-chaining/package.json create mode 100755 node_modules/@babel/plugin-syntax-top-level-await/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-top-level-await/README.md create mode 100755 node_modules/@babel/plugin-syntax-top-level-await/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-top-level-await/package.json create mode 100755 node_modules/@babel/plugin-syntax-typescript/LICENSE create mode 100755 node_modules/@babel/plugin-syntax-typescript/README.md create mode 100755 node_modules/@babel/plugin-syntax-typescript/lib/index.js create mode 100755 node_modules/@babel/plugin-syntax-typescript/lib/index.js.map create mode 100755 node_modules/@babel/plugin-syntax-typescript/package.json create mode 100755 node_modules/@babel/template/LICENSE create mode 100755 node_modules/@babel/template/README.md create mode 100755 node_modules/@babel/template/lib/builder.js create mode 100755 node_modules/@babel/template/lib/builder.js.map create mode 100755 node_modules/@babel/template/lib/formatters.js create mode 100755 node_modules/@babel/template/lib/formatters.js.map create mode 100755 node_modules/@babel/template/lib/index.js create mode 100755 node_modules/@babel/template/lib/index.js.map create mode 100755 node_modules/@babel/template/lib/literal.js create mode 100755 node_modules/@babel/template/lib/literal.js.map create mode 100755 node_modules/@babel/template/lib/options.js create mode 100755 node_modules/@babel/template/lib/options.js.map create mode 100755 node_modules/@babel/template/lib/parse.js create mode 100755 node_modules/@babel/template/lib/parse.js.map create mode 100755 node_modules/@babel/template/lib/populate.js create mode 100755 node_modules/@babel/template/lib/populate.js.map create mode 100755 node_modules/@babel/template/lib/string.js create mode 100755 node_modules/@babel/template/lib/string.js.map create mode 100755 node_modules/@babel/template/package.json create mode 100755 node_modules/@babel/traverse/LICENSE create mode 100755 node_modules/@babel/traverse/README.md create mode 100755 node_modules/@babel/traverse/lib/cache.js create mode 100755 node_modules/@babel/traverse/lib/cache.js.map create mode 100755 node_modules/@babel/traverse/lib/context.js create mode 100755 node_modules/@babel/traverse/lib/context.js.map create mode 100755 node_modules/@babel/traverse/lib/hub.js create mode 100755 node_modules/@babel/traverse/lib/hub.js.map create mode 100755 node_modules/@babel/traverse/lib/index.js create mode 100755 node_modules/@babel/traverse/lib/index.js.map create mode 100755 node_modules/@babel/traverse/lib/path/ancestry.js create mode 100755 node_modules/@babel/traverse/lib/path/ancestry.js.map create mode 100755 node_modules/@babel/traverse/lib/path/comments.js create mode 100755 node_modules/@babel/traverse/lib/path/comments.js.map create mode 100755 node_modules/@babel/traverse/lib/path/context.js create mode 100755 node_modules/@babel/traverse/lib/path/context.js.map create mode 100755 node_modules/@babel/traverse/lib/path/conversion.js create mode 100755 node_modules/@babel/traverse/lib/path/conversion.js.map create mode 100755 node_modules/@babel/traverse/lib/path/evaluation.js create mode 100755 node_modules/@babel/traverse/lib/path/evaluation.js.map create mode 100755 node_modules/@babel/traverse/lib/path/family.js create mode 100755 node_modules/@babel/traverse/lib/path/family.js.map create mode 100755 node_modules/@babel/traverse/lib/path/index.js create mode 100755 node_modules/@babel/traverse/lib/path/index.js.map create mode 100755 node_modules/@babel/traverse/lib/path/inference/index.js create mode 100755 node_modules/@babel/traverse/lib/path/inference/index.js.map create mode 100755 node_modules/@babel/traverse/lib/path/inference/inferer-reference.js create mode 100755 node_modules/@babel/traverse/lib/path/inference/inferer-reference.js.map create mode 100755 node_modules/@babel/traverse/lib/path/inference/inferers.js create mode 100755 node_modules/@babel/traverse/lib/path/inference/inferers.js.map create mode 100755 node_modules/@babel/traverse/lib/path/inference/util.js create mode 100755 node_modules/@babel/traverse/lib/path/inference/util.js.map create mode 100755 node_modules/@babel/traverse/lib/path/introspection.js create mode 100755 node_modules/@babel/traverse/lib/path/introspection.js.map create mode 100755 node_modules/@babel/traverse/lib/path/lib/hoister.js create mode 100755 node_modules/@babel/traverse/lib/path/lib/hoister.js.map create mode 100755 node_modules/@babel/traverse/lib/path/lib/removal-hooks.js create mode 100755 node_modules/@babel/traverse/lib/path/lib/removal-hooks.js.map create mode 100755 node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js create mode 100755 node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js.map create mode 100755 node_modules/@babel/traverse/lib/path/lib/virtual-types.js create mode 100755 node_modules/@babel/traverse/lib/path/lib/virtual-types.js.map create mode 100755 node_modules/@babel/traverse/lib/path/modification.js create mode 100755 node_modules/@babel/traverse/lib/path/modification.js.map create mode 100755 node_modules/@babel/traverse/lib/path/removal.js create mode 100755 node_modules/@babel/traverse/lib/path/removal.js.map create mode 100755 node_modules/@babel/traverse/lib/path/replacement.js create mode 100755 node_modules/@babel/traverse/lib/path/replacement.js.map create mode 100755 node_modules/@babel/traverse/lib/scope/binding.js create mode 100755 node_modules/@babel/traverse/lib/scope/binding.js.map create mode 100755 node_modules/@babel/traverse/lib/scope/index.js create mode 100755 node_modules/@babel/traverse/lib/scope/index.js.map create mode 100755 node_modules/@babel/traverse/lib/scope/lib/renamer.js create mode 100755 node_modules/@babel/traverse/lib/scope/lib/renamer.js.map create mode 100755 node_modules/@babel/traverse/lib/traverse-node.js create mode 100755 node_modules/@babel/traverse/lib/traverse-node.js.map create mode 100755 node_modules/@babel/traverse/lib/types.js create mode 100755 node_modules/@babel/traverse/lib/types.js.map create mode 100755 node_modules/@babel/traverse/lib/visitors.js create mode 100755 node_modules/@babel/traverse/lib/visitors.js.map create mode 100755 node_modules/@babel/traverse/node_modules/debug/LICENSE create mode 100755 node_modules/@babel/traverse/node_modules/debug/README.md create mode 100755 node_modules/@babel/traverse/node_modules/debug/package.json create mode 100755 node_modules/@babel/traverse/node_modules/debug/src/browser.js create mode 100755 node_modules/@babel/traverse/node_modules/debug/src/common.js create mode 100755 node_modules/@babel/traverse/node_modules/debug/src/index.js create mode 100755 node_modules/@babel/traverse/node_modules/debug/src/node.js create mode 100755 node_modules/@babel/traverse/node_modules/ms/index.js create mode 100755 node_modules/@babel/traverse/node_modules/ms/license.md create mode 100755 node_modules/@babel/traverse/node_modules/ms/package.json create mode 100755 node_modules/@babel/traverse/node_modules/ms/readme.md create mode 100755 node_modules/@babel/traverse/package.json create mode 100755 node_modules/@babel/types/LICENSE create mode 100755 node_modules/@babel/types/README.md create mode 100755 node_modules/@babel/types/lib/asserts/assertNode.js create mode 100755 node_modules/@babel/types/lib/asserts/assertNode.js.map create mode 100755 node_modules/@babel/types/lib/asserts/generated/index.js create mode 100755 node_modules/@babel/types/lib/asserts/generated/index.js.map create mode 100755 node_modules/@babel/types/lib/ast-types/generated/index.js create mode 100755 node_modules/@babel/types/lib/ast-types/generated/index.js.map create mode 100755 node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js create mode 100755 node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map create mode 100755 node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js create mode 100755 node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map create mode 100755 node_modules/@babel/types/lib/builders/generated/index.js create mode 100755 node_modules/@babel/types/lib/builders/generated/index.js.map create mode 100755 node_modules/@babel/types/lib/builders/generated/uppercase.js create mode 100755 node_modules/@babel/types/lib/builders/generated/uppercase.js.map create mode 100755 node_modules/@babel/types/lib/builders/react/buildChildren.js create mode 100755 node_modules/@babel/types/lib/builders/react/buildChildren.js.map create mode 100755 node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js create mode 100755 node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map create mode 100755 node_modules/@babel/types/lib/builders/validateNode.js create mode 100755 node_modules/@babel/types/lib/builders/validateNode.js.map create mode 100755 node_modules/@babel/types/lib/clone/clone.js create mode 100755 node_modules/@babel/types/lib/clone/clone.js.map create mode 100755 node_modules/@babel/types/lib/clone/cloneDeep.js create mode 100755 node_modules/@babel/types/lib/clone/cloneDeep.js.map create mode 100755 node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js create mode 100755 node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map create mode 100755 node_modules/@babel/types/lib/clone/cloneNode.js create mode 100755 node_modules/@babel/types/lib/clone/cloneNode.js.map create mode 100755 node_modules/@babel/types/lib/clone/cloneWithoutLoc.js create mode 100755 node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map create mode 100755 node_modules/@babel/types/lib/comments/addComment.js create mode 100755 node_modules/@babel/types/lib/comments/addComment.js.map create mode 100755 node_modules/@babel/types/lib/comments/addComments.js create mode 100755 node_modules/@babel/types/lib/comments/addComments.js.map create mode 100755 node_modules/@babel/types/lib/comments/inheritInnerComments.js create mode 100755 node_modules/@babel/types/lib/comments/inheritInnerComments.js.map create mode 100755 node_modules/@babel/types/lib/comments/inheritLeadingComments.js create mode 100755 node_modules/@babel/types/lib/comments/inheritLeadingComments.js.map create mode 100755 node_modules/@babel/types/lib/comments/inheritTrailingComments.js create mode 100755 node_modules/@babel/types/lib/comments/inheritTrailingComments.js.map create mode 100755 node_modules/@babel/types/lib/comments/inheritsComments.js create mode 100755 node_modules/@babel/types/lib/comments/inheritsComments.js.map create mode 100755 node_modules/@babel/types/lib/comments/removeComments.js create mode 100755 node_modules/@babel/types/lib/comments/removeComments.js.map create mode 100755 node_modules/@babel/types/lib/constants/generated/index.js create mode 100755 node_modules/@babel/types/lib/constants/generated/index.js.map create mode 100755 node_modules/@babel/types/lib/constants/index.js create mode 100755 node_modules/@babel/types/lib/constants/index.js.map create mode 100755 node_modules/@babel/types/lib/converters/ensureBlock.js create mode 100755 node_modules/@babel/types/lib/converters/ensureBlock.js.map create mode 100755 node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js create mode 100755 node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map create mode 100755 node_modules/@babel/types/lib/converters/toBindingIdentifierName.js create mode 100755 node_modules/@babel/types/lib/converters/toBindingIdentifierName.js.map create mode 100755 node_modules/@babel/types/lib/converters/toBlock.js create mode 100755 node_modules/@babel/types/lib/converters/toBlock.js.map create mode 100755 node_modules/@babel/types/lib/converters/toComputedKey.js create mode 100755 node_modules/@babel/types/lib/converters/toComputedKey.js.map create mode 100755 node_modules/@babel/types/lib/converters/toExpression.js create mode 100755 node_modules/@babel/types/lib/converters/toExpression.js.map create mode 100755 node_modules/@babel/types/lib/converters/toIdentifier.js create mode 100755 node_modules/@babel/types/lib/converters/toIdentifier.js.map create mode 100755 node_modules/@babel/types/lib/converters/toKeyAlias.js create mode 100755 node_modules/@babel/types/lib/converters/toKeyAlias.js.map create mode 100755 node_modules/@babel/types/lib/converters/toSequenceExpression.js create mode 100755 node_modules/@babel/types/lib/converters/toSequenceExpression.js.map create mode 100755 node_modules/@babel/types/lib/converters/toStatement.js create mode 100755 node_modules/@babel/types/lib/converters/toStatement.js.map create mode 100755 node_modules/@babel/types/lib/converters/valueToNode.js create mode 100755 node_modules/@babel/types/lib/converters/valueToNode.js.map create mode 100755 node_modules/@babel/types/lib/definitions/core.js create mode 100755 node_modules/@babel/types/lib/definitions/core.js.map create mode 100755 node_modules/@babel/types/lib/definitions/experimental.js create mode 100755 node_modules/@babel/types/lib/definitions/experimental.js.map create mode 100755 node_modules/@babel/types/lib/definitions/flow.js create mode 100755 node_modules/@babel/types/lib/definitions/flow.js.map create mode 100755 node_modules/@babel/types/lib/definitions/index.js create mode 100755 node_modules/@babel/types/lib/definitions/index.js.map create mode 100755 node_modules/@babel/types/lib/definitions/jsx.js create mode 100755 node_modules/@babel/types/lib/definitions/jsx.js.map create mode 100755 node_modules/@babel/types/lib/definitions/misc.js create mode 100755 node_modules/@babel/types/lib/definitions/misc.js.map create mode 100755 node_modules/@babel/types/lib/definitions/placeholders.js create mode 100755 node_modules/@babel/types/lib/definitions/placeholders.js.map create mode 100755 node_modules/@babel/types/lib/definitions/typescript.js create mode 100755 node_modules/@babel/types/lib/definitions/typescript.js.map create mode 100755 node_modules/@babel/types/lib/definitions/utils.js create mode 100755 node_modules/@babel/types/lib/definitions/utils.js.map create mode 100755 node_modules/@babel/types/lib/index-legacy.d.ts create mode 100755 node_modules/@babel/types/lib/index.d.ts create mode 100755 node_modules/@babel/types/lib/index.js create mode 100755 node_modules/@babel/types/lib/index.js.flow create mode 100755 node_modules/@babel/types/lib/index.js.map create mode 100755 node_modules/@babel/types/lib/modifications/appendToMemberExpression.js create mode 100755 node_modules/@babel/types/lib/modifications/appendToMemberExpression.js.map create mode 100755 node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js create mode 100755 node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map create mode 100755 node_modules/@babel/types/lib/modifications/inherits.js create mode 100755 node_modules/@babel/types/lib/modifications/inherits.js.map create mode 100755 node_modules/@babel/types/lib/modifications/prependToMemberExpression.js create mode 100755 node_modules/@babel/types/lib/modifications/prependToMemberExpression.js.map create mode 100755 node_modules/@babel/types/lib/modifications/removeProperties.js create mode 100755 node_modules/@babel/types/lib/modifications/removeProperties.js.map create mode 100755 node_modules/@babel/types/lib/modifications/removePropertiesDeep.js create mode 100755 node_modules/@babel/types/lib/modifications/removePropertiesDeep.js.map create mode 100755 node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js create mode 100755 node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map create mode 100755 node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js create mode 100755 node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map create mode 100755 node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js create mode 100755 node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map create mode 100755 node_modules/@babel/types/lib/traverse/traverse.js create mode 100755 node_modules/@babel/types/lib/traverse/traverse.js.map create mode 100755 node_modules/@babel/types/lib/traverse/traverseFast.js create mode 100755 node_modules/@babel/types/lib/traverse/traverseFast.js.map create mode 100755 node_modules/@babel/types/lib/utils/inherit.js create mode 100755 node_modules/@babel/types/lib/utils/inherit.js.map create mode 100755 node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js create mode 100755 node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map create mode 100755 node_modules/@babel/types/lib/utils/shallowEqual.js create mode 100755 node_modules/@babel/types/lib/utils/shallowEqual.js.map create mode 100755 node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js create mode 100755 node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js.map create mode 100755 node_modules/@babel/types/lib/validators/generated/index.js create mode 100755 node_modules/@babel/types/lib/validators/generated/index.js.map create mode 100755 node_modules/@babel/types/lib/validators/is.js create mode 100755 node_modules/@babel/types/lib/validators/is.js.map create mode 100755 node_modules/@babel/types/lib/validators/isBinding.js create mode 100755 node_modules/@babel/types/lib/validators/isBinding.js.map create mode 100755 node_modules/@babel/types/lib/validators/isBlockScoped.js create mode 100755 node_modules/@babel/types/lib/validators/isBlockScoped.js.map create mode 100755 node_modules/@babel/types/lib/validators/isImmutable.js create mode 100755 node_modules/@babel/types/lib/validators/isImmutable.js.map create mode 100755 node_modules/@babel/types/lib/validators/isLet.js create mode 100755 node_modules/@babel/types/lib/validators/isLet.js.map create mode 100755 node_modules/@babel/types/lib/validators/isNode.js create mode 100755 node_modules/@babel/types/lib/validators/isNode.js.map create mode 100755 node_modules/@babel/types/lib/validators/isNodesEquivalent.js create mode 100755 node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map create mode 100755 node_modules/@babel/types/lib/validators/isPlaceholderType.js create mode 100755 node_modules/@babel/types/lib/validators/isPlaceholderType.js.map create mode 100755 node_modules/@babel/types/lib/validators/isReferenced.js create mode 100755 node_modules/@babel/types/lib/validators/isReferenced.js.map create mode 100755 node_modules/@babel/types/lib/validators/isScope.js create mode 100755 node_modules/@babel/types/lib/validators/isScope.js.map create mode 100755 node_modules/@babel/types/lib/validators/isSpecifierDefault.js create mode 100755 node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map create mode 100755 node_modules/@babel/types/lib/validators/isType.js create mode 100755 node_modules/@babel/types/lib/validators/isType.js.map create mode 100755 node_modules/@babel/types/lib/validators/isValidES3Identifier.js create mode 100755 node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map create mode 100755 node_modules/@babel/types/lib/validators/isValidIdentifier.js create mode 100755 node_modules/@babel/types/lib/validators/isValidIdentifier.js.map create mode 100755 node_modules/@babel/types/lib/validators/isVar.js create mode 100755 node_modules/@babel/types/lib/validators/isVar.js.map create mode 100755 node_modules/@babel/types/lib/validators/matchesPattern.js create mode 100755 node_modules/@babel/types/lib/validators/matchesPattern.js.map create mode 100755 node_modules/@babel/types/lib/validators/react/isCompatTag.js create mode 100755 node_modules/@babel/types/lib/validators/react/isCompatTag.js.map create mode 100755 node_modules/@babel/types/lib/validators/react/isReactComponent.js create mode 100755 node_modules/@babel/types/lib/validators/react/isReactComponent.js.map create mode 100755 node_modules/@babel/types/lib/validators/validate.js create mode 100755 node_modules/@babel/types/lib/validators/validate.js.map create mode 100755 node_modules/@babel/types/package.json create mode 100755 node_modules/@bcoe/v8-coverage/.editorconfig create mode 100755 node_modules/@bcoe/v8-coverage/.gitattributes create mode 100755 node_modules/@bcoe/v8-coverage/CHANGELOG.md create mode 100755 node_modules/@bcoe/v8-coverage/LICENSE.md create mode 100755 node_modules/@bcoe/v8-coverage/LICENSE.txt create mode 100755 node_modules/@bcoe/v8-coverage/README.md create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/CHANGELOG.md create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/LICENSE.md create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/README.md create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/_src/ascii.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/_src/clone.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/_src/compare.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/_src/index.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/_src/merge.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/_src/normalize.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/_src/range-tree.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/_src/types.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/ascii.d.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/ascii.js create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/ascii.mjs create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/clone.d.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/clone.js create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/clone.mjs create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/compare.d.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/compare.js create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/compare.mjs create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/index.d.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/index.js create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/index.mjs create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/merge.d.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/merge.js create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/merge.mjs create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/normalize.d.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/normalize.js create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/normalize.mjs create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/package.json create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/range-tree.d.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/range-tree.js create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/range-tree.mjs create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/tsconfig.json create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/types.d.ts create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/types.js create mode 100755 node_modules/@bcoe/v8-coverage/dist/lib/types.mjs create mode 100755 node_modules/@bcoe/v8-coverage/gulpfile.ts create mode 100755 node_modules/@bcoe/v8-coverage/package.json create mode 100755 node_modules/@bcoe/v8-coverage/src/lib/ascii.ts create mode 100755 node_modules/@bcoe/v8-coverage/src/lib/clone.ts create mode 100755 node_modules/@bcoe/v8-coverage/src/lib/compare.ts create mode 100755 node_modules/@bcoe/v8-coverage/src/lib/index.ts create mode 100755 node_modules/@bcoe/v8-coverage/src/lib/merge.ts create mode 100755 node_modules/@bcoe/v8-coverage/src/lib/normalize.ts create mode 100755 node_modules/@bcoe/v8-coverage/src/lib/range-tree.ts create mode 100755 node_modules/@bcoe/v8-coverage/src/lib/types.ts create mode 100755 node_modules/@bcoe/v8-coverage/src/test/merge.spec.ts create mode 100755 node_modules/@bcoe/v8-coverage/tsconfig.json create mode 100755 node_modules/@istanbuljs/load-nyc-config/CHANGELOG.md create mode 100755 node_modules/@istanbuljs/load-nyc-config/LICENSE create mode 100755 node_modules/@istanbuljs/load-nyc-config/README.md create mode 100755 node_modules/@istanbuljs/load-nyc-config/index.js create mode 100755 node_modules/@istanbuljs/load-nyc-config/load-esm.js create mode 100755 node_modules/@istanbuljs/load-nyc-config/package.json create mode 100755 node_modules/@istanbuljs/schema/CHANGELOG.md create mode 100755 node_modules/@istanbuljs/schema/LICENSE create mode 100755 node_modules/@istanbuljs/schema/README.md create mode 100755 node_modules/@istanbuljs/schema/default-exclude.js create mode 100755 node_modules/@istanbuljs/schema/default-extension.js create mode 100755 node_modules/@istanbuljs/schema/index.js create mode 100755 node_modules/@istanbuljs/schema/package.json create mode 100755 node_modules/@jest/console/LICENSE create mode 100755 node_modules/@jest/console/build/BufferedConsole.js create mode 100755 node_modules/@jest/console/build/CustomConsole.js create mode 100755 node_modules/@jest/console/build/NullConsole.js create mode 100755 node_modules/@jest/console/build/getConsoleOutput.js create mode 100755 node_modules/@jest/console/build/index.d.ts create mode 100755 node_modules/@jest/console/build/index.js create mode 100755 node_modules/@jest/console/build/types.js create mode 100755 node_modules/@jest/console/package.json create mode 100755 node_modules/@jest/core/LICENSE create mode 100755 node_modules/@jest/core/README.md create mode 100755 node_modules/@jest/core/build/FailedTestsCache.js create mode 100755 node_modules/@jest/core/build/FailedTestsInteractiveMode.js create mode 100755 node_modules/@jest/core/build/ReporterDispatcher.js create mode 100755 node_modules/@jest/core/build/SearchSource.js create mode 100755 node_modules/@jest/core/build/SnapshotInteractiveMode.js create mode 100755 node_modules/@jest/core/build/TestNamePatternPrompt.js create mode 100755 node_modules/@jest/core/build/TestPathPatternPrompt.js create mode 100755 node_modules/@jest/core/build/TestScheduler.js create mode 100755 node_modules/@jest/core/build/cli/index.js create mode 100755 node_modules/@jest/core/build/collectHandles.js create mode 100755 node_modules/@jest/core/build/getChangedFilesPromise.js create mode 100755 node_modules/@jest/core/build/getConfigsOfProjectsToRun.js create mode 100755 node_modules/@jest/core/build/getNoTestFound.js create mode 100755 node_modules/@jest/core/build/getNoTestFoundFailed.js create mode 100755 node_modules/@jest/core/build/getNoTestFoundPassWithNoTests.js create mode 100755 node_modules/@jest/core/build/getNoTestFoundRelatedToChangedFiles.js create mode 100755 node_modules/@jest/core/build/getNoTestFoundVerbose.js create mode 100755 node_modules/@jest/core/build/getNoTestsFoundMessage.js create mode 100755 node_modules/@jest/core/build/getProjectDisplayName.js create mode 100755 node_modules/@jest/core/build/getProjectNamesMissingWarning.js create mode 100755 node_modules/@jest/core/build/getSelectProjectsMessage.js create mode 100755 node_modules/@jest/core/build/index.d.ts create mode 100755 node_modules/@jest/core/build/index.js create mode 100755 node_modules/@jest/core/build/lib/activeFiltersMessage.js create mode 100755 node_modules/@jest/core/build/lib/createContext.js create mode 100755 node_modules/@jest/core/build/lib/handleDeprecationWarnings.js create mode 100755 node_modules/@jest/core/build/lib/isValidPath.js create mode 100755 node_modules/@jest/core/build/lib/logDebugMessages.js create mode 100755 node_modules/@jest/core/build/lib/updateGlobalConfig.js create mode 100755 node_modules/@jest/core/build/lib/watchPluginsHelpers.js create mode 100755 node_modules/@jest/core/build/plugins/FailedTestsInteractive.js create mode 100755 node_modules/@jest/core/build/plugins/Quit.js create mode 100755 node_modules/@jest/core/build/plugins/TestNamePattern.js create mode 100755 node_modules/@jest/core/build/plugins/TestPathPattern.js create mode 100755 node_modules/@jest/core/build/plugins/UpdateSnapshots.js create mode 100755 node_modules/@jest/core/build/plugins/UpdateSnapshotsInteractive.js create mode 100755 node_modules/@jest/core/build/pluralize.js create mode 100755 node_modules/@jest/core/build/runGlobalHook.js create mode 100755 node_modules/@jest/core/build/runJest.js create mode 100755 node_modules/@jest/core/build/testSchedulerHelper.js create mode 100755 node_modules/@jest/core/build/types.js create mode 100755 node_modules/@jest/core/build/version.js create mode 100755 node_modules/@jest/core/build/watch.js create mode 100755 node_modules/@jest/core/package.json create mode 100755 node_modules/@jest/environment/LICENSE create mode 100755 node_modules/@jest/environment/build/index.d.ts create mode 100755 node_modules/@jest/environment/build/index.js create mode 100755 node_modules/@jest/environment/package.json create mode 100755 node_modules/@jest/expect-utils/LICENSE create mode 100755 node_modules/@jest/expect-utils/README.md create mode 100755 node_modules/@jest/expect-utils/build/immutableUtils.js create mode 100755 node_modules/@jest/expect-utils/build/index.d.ts create mode 100755 node_modules/@jest/expect-utils/build/index.js create mode 100755 node_modules/@jest/expect-utils/build/jasmineUtils.js create mode 100755 node_modules/@jest/expect-utils/build/types.js create mode 100755 node_modules/@jest/expect-utils/build/utils.js create mode 100755 node_modules/@jest/expect-utils/package.json create mode 100755 node_modules/@jest/expect/LICENSE create mode 100755 node_modules/@jest/expect/README.md create mode 100755 node_modules/@jest/expect/build/index.d.ts create mode 100755 node_modules/@jest/expect/build/index.js create mode 100755 node_modules/@jest/expect/build/types.js create mode 100755 node_modules/@jest/expect/package.json create mode 100755 node_modules/@jest/fake-timers/LICENSE create mode 100755 node_modules/@jest/fake-timers/build/index.d.ts create mode 100755 node_modules/@jest/fake-timers/build/index.js create mode 100755 node_modules/@jest/fake-timers/build/legacyFakeTimers.js create mode 100755 node_modules/@jest/fake-timers/build/modernFakeTimers.js create mode 100755 node_modules/@jest/fake-timers/package.json create mode 100755 node_modules/@jest/globals/LICENSE create mode 100755 node_modules/@jest/globals/build/index.d.ts create mode 100755 node_modules/@jest/globals/build/index.js create mode 100755 node_modules/@jest/globals/package.json create mode 100755 node_modules/@jest/reporters/LICENSE create mode 100755 node_modules/@jest/reporters/assets/jest_logo.png create mode 100755 node_modules/@jest/reporters/build/BaseReporter.js create mode 100755 node_modules/@jest/reporters/build/CoverageReporter.js create mode 100755 node_modules/@jest/reporters/build/CoverageWorker.js create mode 100755 node_modules/@jest/reporters/build/DefaultReporter.js create mode 100755 node_modules/@jest/reporters/build/GitHubActionsReporter.js create mode 100755 node_modules/@jest/reporters/build/NotifyReporter.js create mode 100755 node_modules/@jest/reporters/build/Status.js create mode 100755 node_modules/@jest/reporters/build/SummaryReporter.js create mode 100755 node_modules/@jest/reporters/build/VerboseReporter.js create mode 100755 node_modules/@jest/reporters/build/formatTestPath.js create mode 100755 node_modules/@jest/reporters/build/generateEmptyCoverage.js create mode 100755 node_modules/@jest/reporters/build/getResultHeader.js create mode 100755 node_modules/@jest/reporters/build/getSnapshotStatus.js create mode 100755 node_modules/@jest/reporters/build/getSnapshotSummary.js create mode 100755 node_modules/@jest/reporters/build/getSummary.js create mode 100755 node_modules/@jest/reporters/build/getWatermarks.js create mode 100755 node_modules/@jest/reporters/build/index.d.ts create mode 100755 node_modules/@jest/reporters/build/index.js create mode 100755 node_modules/@jest/reporters/build/printDisplayName.js create mode 100755 node_modules/@jest/reporters/build/relativePath.js create mode 100755 node_modules/@jest/reporters/build/trimAndFormatPath.js create mode 100755 node_modules/@jest/reporters/build/types.js create mode 100755 node_modules/@jest/reporters/build/wrapAnsiString.js create mode 100755 node_modules/@jest/reporters/package.json create mode 100755 node_modules/@jest/schemas/LICENSE create mode 100755 node_modules/@jest/schemas/README.md create mode 100755 node_modules/@jest/schemas/build/index.d.ts create mode 100755 node_modules/@jest/schemas/build/index.js create mode 100755 node_modules/@jest/schemas/package.json create mode 100755 node_modules/@jest/source-map/LICENSE create mode 100755 node_modules/@jest/source-map/build/getCallsite.js create mode 100755 node_modules/@jest/source-map/build/index.d.ts create mode 100755 node_modules/@jest/source-map/build/index.js create mode 100755 node_modules/@jest/source-map/build/types.js create mode 100755 node_modules/@jest/source-map/package.json create mode 100755 node_modules/@jest/test-result/LICENSE create mode 100755 node_modules/@jest/test-result/build/formatTestResults.js create mode 100755 node_modules/@jest/test-result/build/helpers.js create mode 100755 node_modules/@jest/test-result/build/index.d.ts create mode 100755 node_modules/@jest/test-result/build/index.js create mode 100755 node_modules/@jest/test-result/build/types.js create mode 100755 node_modules/@jest/test-result/package.json create mode 100755 node_modules/@jest/test-sequencer/LICENSE create mode 100755 node_modules/@jest/test-sequencer/build/index.d.ts create mode 100755 node_modules/@jest/test-sequencer/build/index.js create mode 100755 node_modules/@jest/test-sequencer/package.json create mode 100755 node_modules/@jest/transform/LICENSE create mode 100755 node_modules/@jest/transform/build/ScriptTransformer.js create mode 100755 node_modules/@jest/transform/build/enhanceUnexpectedTokenMessage.js create mode 100755 node_modules/@jest/transform/build/index.d.ts create mode 100755 node_modules/@jest/transform/build/index.js create mode 100755 node_modules/@jest/transform/build/runtimeErrorsAndWarnings.js create mode 100755 node_modules/@jest/transform/build/shouldInstrument.js create mode 100755 node_modules/@jest/transform/build/types.js create mode 100755 node_modules/@jest/transform/package.json create mode 100755 node_modules/@jest/types/LICENSE create mode 100755 node_modules/@jest/types/README.md create mode 100755 node_modules/@jest/types/build/Circus.js create mode 100755 node_modules/@jest/types/build/Config.js create mode 100755 node_modules/@jest/types/build/Global.js create mode 100755 node_modules/@jest/types/build/TestResult.js create mode 100755 node_modules/@jest/types/build/Transform.js create mode 100755 node_modules/@jest/types/build/index.d.ts create mode 100755 node_modules/@jest/types/build/index.js create mode 100755 node_modules/@jest/types/package.json create mode 100755 node_modules/@jridgewell/gen-mapping/LICENSE create mode 100755 node_modules/@jridgewell/gen-mapping/README.md create mode 100755 node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs create mode 100755 node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map create mode 100755 node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js create mode 100755 node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map create mode 100755 node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts create mode 100755 node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts create mode 100755 node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts create mode 100755 node_modules/@jridgewell/gen-mapping/package.json create mode 100755 node_modules/@jridgewell/resolve-uri/LICENSE create mode 100755 node_modules/@jridgewell/resolve-uri/README.md create mode 100755 node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs create mode 100755 node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map create mode 100755 node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js create mode 100755 node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map create mode 100755 node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts create mode 100755 node_modules/@jridgewell/resolve-uri/package.json create mode 100755 node_modules/@jridgewell/set-array/LICENSE create mode 100755 node_modules/@jridgewell/set-array/README.md create mode 100755 node_modules/@jridgewell/set-array/dist/set-array.mjs create mode 100755 node_modules/@jridgewell/set-array/dist/set-array.mjs.map create mode 100755 node_modules/@jridgewell/set-array/dist/set-array.umd.js create mode 100755 node_modules/@jridgewell/set-array/dist/set-array.umd.js.map create mode 100755 node_modules/@jridgewell/set-array/dist/types/set-array.d.ts create mode 100755 node_modules/@jridgewell/set-array/package.json create mode 100755 node_modules/@jridgewell/set-array/src/set-array.ts create mode 100755 node_modules/@jridgewell/sourcemap-codec/LICENSE create mode 100755 node_modules/@jridgewell/sourcemap-codec/README.md create mode 100755 node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs create mode 100755 node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map create mode 100755 node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js create mode 100755 node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map create mode 100755 node_modules/@jridgewell/sourcemap-codec/dist/types/sourcemap-codec.d.ts create mode 100755 node_modules/@jridgewell/sourcemap-codec/package.json create mode 100755 node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts create mode 100755 node_modules/@jridgewell/trace-mapping/LICENSE create mode 100755 node_modules/@jridgewell/trace-mapping/README.md create mode 100755 node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs create mode 100755 node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map create mode 100755 node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js create mode 100755 node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map create mode 100755 node_modules/@jridgewell/trace-mapping/dist/types/any-map.d.ts create mode 100755 node_modules/@jridgewell/trace-mapping/dist/types/binary-search.d.ts create mode 100755 node_modules/@jridgewell/trace-mapping/dist/types/by-source.d.ts create mode 100755 node_modules/@jridgewell/trace-mapping/dist/types/resolve.d.ts create mode 100755 node_modules/@jridgewell/trace-mapping/dist/types/sort.d.ts create mode 100755 node_modules/@jridgewell/trace-mapping/dist/types/sourcemap-segment.d.ts create mode 100755 node_modules/@jridgewell/trace-mapping/dist/types/strip-filename.d.ts create mode 100755 node_modules/@jridgewell/trace-mapping/dist/types/trace-mapping.d.ts create mode 100755 node_modules/@jridgewell/trace-mapping/dist/types/types.d.ts create mode 100755 node_modules/@jridgewell/trace-mapping/package.json mode change 100644 => 100755 node_modules/@mozilla/readability/.eslintrc.js mode change 100644 => 100755 node_modules/@mozilla/readability/CODE_OF_CONDUCT.md mode change 100644 => 100755 node_modules/@mozilla/readability/JSDOMParser.js mode change 100644 => 100755 node_modules/@mozilla/readability/README.md mode change 100644 => 100755 node_modules/@mozilla/readability/Readability-readerable.js mode change 100644 => 100755 node_modules/@mozilla/readability/Readability.js mode change 100644 => 100755 node_modules/@mozilla/readability/index.js mode change 100644 => 100755 node_modules/@mozilla/readability/package.json create mode 100755 node_modules/@sinclair/typebox/compiler/compiler.d.ts create mode 100755 node_modules/@sinclair/typebox/compiler/compiler.js create mode 100755 node_modules/@sinclair/typebox/compiler/index.d.ts create mode 100755 node_modules/@sinclair/typebox/compiler/index.js create mode 100755 node_modules/@sinclair/typebox/conditional/conditional.d.ts create mode 100755 node_modules/@sinclair/typebox/conditional/conditional.js create mode 100755 node_modules/@sinclair/typebox/conditional/index.d.ts create mode 100755 node_modules/@sinclair/typebox/conditional/index.js create mode 100755 node_modules/@sinclair/typebox/conditional/structural.d.ts create mode 100755 node_modules/@sinclair/typebox/conditional/structural.js create mode 100755 node_modules/@sinclair/typebox/errors/errors.d.ts create mode 100755 node_modules/@sinclair/typebox/errors/errors.js create mode 100755 node_modules/@sinclair/typebox/errors/index.d.ts create mode 100755 node_modules/@sinclair/typebox/errors/index.js create mode 100755 node_modules/@sinclair/typebox/format/format.d.ts create mode 100755 node_modules/@sinclair/typebox/format/format.js create mode 100755 node_modules/@sinclair/typebox/format/index.d.ts create mode 100755 node_modules/@sinclair/typebox/format/index.js create mode 100755 node_modules/@sinclair/typebox/guard/guard.d.ts create mode 100755 node_modules/@sinclair/typebox/guard/guard.js create mode 100755 node_modules/@sinclair/typebox/guard/index.d.ts create mode 100755 node_modules/@sinclair/typebox/guard/index.js create mode 100755 node_modules/@sinclair/typebox/license create mode 100755 node_modules/@sinclair/typebox/package.json create mode 100755 node_modules/@sinclair/typebox/readme.md create mode 100755 node_modules/@sinclair/typebox/typebox.d.ts create mode 100755 node_modules/@sinclair/typebox/typebox.js create mode 100755 node_modules/@sinclair/typebox/value/cast.d.ts create mode 100755 node_modules/@sinclair/typebox/value/cast.js create mode 100755 node_modules/@sinclair/typebox/value/check.d.ts create mode 100755 node_modules/@sinclair/typebox/value/check.js create mode 100755 node_modules/@sinclair/typebox/value/clone.d.ts create mode 100755 node_modules/@sinclair/typebox/value/clone.js create mode 100755 node_modules/@sinclair/typebox/value/create.d.ts create mode 100755 node_modules/@sinclair/typebox/value/create.js create mode 100755 node_modules/@sinclair/typebox/value/delta.d.ts create mode 100755 node_modules/@sinclair/typebox/value/delta.js create mode 100755 node_modules/@sinclair/typebox/value/equal.d.ts create mode 100755 node_modules/@sinclair/typebox/value/equal.js create mode 100755 node_modules/@sinclair/typebox/value/index.d.ts create mode 100755 node_modules/@sinclair/typebox/value/index.js create mode 100755 node_modules/@sinclair/typebox/value/is.d.ts create mode 100755 node_modules/@sinclair/typebox/value/is.js create mode 100755 node_modules/@sinclair/typebox/value/pointer.d.ts create mode 100755 node_modules/@sinclair/typebox/value/pointer.js create mode 100755 node_modules/@sinclair/typebox/value/value.d.ts create mode 100755 node_modules/@sinclair/typebox/value/value.js create mode 100755 node_modules/@sinonjs/commons/LICENSE create mode 100755 node_modules/@sinonjs/commons/README.md create mode 100755 node_modules/@sinonjs/commons/lib/called-in-order.js create mode 100755 node_modules/@sinonjs/commons/lib/called-in-order.test.js create mode 100755 node_modules/@sinonjs/commons/lib/class-name.js create mode 100755 node_modules/@sinonjs/commons/lib/class-name.test.js create mode 100755 node_modules/@sinonjs/commons/lib/deprecated.js create mode 100755 node_modules/@sinonjs/commons/lib/deprecated.test.js create mode 100755 node_modules/@sinonjs/commons/lib/every.js create mode 100755 node_modules/@sinonjs/commons/lib/every.test.js create mode 100755 node_modules/@sinonjs/commons/lib/function-name.js create mode 100755 node_modules/@sinonjs/commons/lib/function-name.test.js create mode 100755 node_modules/@sinonjs/commons/lib/global.js create mode 100755 node_modules/@sinonjs/commons/lib/global.test.js create mode 100755 node_modules/@sinonjs/commons/lib/index.js create mode 100755 node_modules/@sinonjs/commons/lib/index.test.js create mode 100755 node_modules/@sinonjs/commons/lib/order-by-first-call.js create mode 100755 node_modules/@sinonjs/commons/lib/order-by-first-call.test.js create mode 100755 node_modules/@sinonjs/commons/lib/prototypes/README.md create mode 100755 node_modules/@sinonjs/commons/lib/prototypes/array.js create mode 100755 node_modules/@sinonjs/commons/lib/prototypes/copy-prototype-methods.js create mode 100755 node_modules/@sinonjs/commons/lib/prototypes/copy-prototype-methods.test.js create mode 100755 node_modules/@sinonjs/commons/lib/prototypes/function.js create mode 100755 node_modules/@sinonjs/commons/lib/prototypes/index.js create mode 100755 node_modules/@sinonjs/commons/lib/prototypes/index.test.js create mode 100755 node_modules/@sinonjs/commons/lib/prototypes/map.js create mode 100755 node_modules/@sinonjs/commons/lib/prototypes/object.js create mode 100755 node_modules/@sinonjs/commons/lib/prototypes/set.js create mode 100755 node_modules/@sinonjs/commons/lib/prototypes/string.js create mode 100755 node_modules/@sinonjs/commons/lib/prototypes/throws-on-proto.js create mode 100755 node_modules/@sinonjs/commons/lib/type-of.js create mode 100755 node_modules/@sinonjs/commons/lib/type-of.test.js create mode 100755 node_modules/@sinonjs/commons/lib/value-to-string.js create mode 100755 node_modules/@sinonjs/commons/lib/value-to-string.test.js create mode 100755 node_modules/@sinonjs/commons/package.json create mode 100755 node_modules/@sinonjs/commons/types/called-in-order.d.ts create mode 100755 node_modules/@sinonjs/commons/types/class-name.d.ts create mode 100755 node_modules/@sinonjs/commons/types/deprecated.d.ts create mode 100755 node_modules/@sinonjs/commons/types/every.d.ts create mode 100755 node_modules/@sinonjs/commons/types/function-name.d.ts create mode 100755 node_modules/@sinonjs/commons/types/global.d.ts create mode 100755 node_modules/@sinonjs/commons/types/index.d.ts create mode 100755 node_modules/@sinonjs/commons/types/order-by-first-call.d.ts create mode 100755 node_modules/@sinonjs/commons/types/prototypes/array.d.ts create mode 100755 node_modules/@sinonjs/commons/types/prototypes/copy-prototype-methods.d.ts create mode 100755 node_modules/@sinonjs/commons/types/prototypes/function.d.ts create mode 100755 node_modules/@sinonjs/commons/types/prototypes/index.d.ts create mode 100755 node_modules/@sinonjs/commons/types/prototypes/map.d.ts create mode 100755 node_modules/@sinonjs/commons/types/prototypes/object.d.ts create mode 100755 node_modules/@sinonjs/commons/types/prototypes/set.d.ts create mode 100755 node_modules/@sinonjs/commons/types/prototypes/string.d.ts create mode 100755 node_modules/@sinonjs/commons/types/prototypes/throws-on-proto.d.ts create mode 100755 node_modules/@sinonjs/commons/types/type-of.d.ts create mode 100755 node_modules/@sinonjs/commons/types/value-to-string.d.ts create mode 100755 node_modules/@sinonjs/fake-timers/CHANGELOG.md create mode 100755 node_modules/@sinonjs/fake-timers/LICENSE create mode 100755 node_modules/@sinonjs/fake-timers/README.md create mode 100755 node_modules/@sinonjs/fake-timers/package.json create mode 100755 node_modules/@sinonjs/fake-timers/src/fake-timers-src.js mode change 100644 => 100755 node_modules/@tootallnate/once/dist/index.d.ts mode change 100644 => 100755 node_modules/@tootallnate/once/dist/index.js mode change 100644 => 100755 node_modules/@tootallnate/once/dist/index.js.map mode change 100644 => 100755 node_modules/@tootallnate/once/package.json create mode 100755 node_modules/@types/babel__core/LICENSE create mode 100755 node_modules/@types/babel__core/README.md create mode 100755 node_modules/@types/babel__core/index.d.ts create mode 100755 node_modules/@types/babel__core/package.json create mode 100755 node_modules/@types/babel__generator/LICENSE create mode 100755 node_modules/@types/babel__generator/README.md create mode 100755 node_modules/@types/babel__generator/index.d.ts create mode 100755 node_modules/@types/babel__generator/package.json create mode 100755 node_modules/@types/babel__template/LICENSE create mode 100755 node_modules/@types/babel__template/README.md create mode 100755 node_modules/@types/babel__template/index.d.ts create mode 100755 node_modules/@types/babel__template/package.json create mode 100755 node_modules/@types/babel__traverse/LICENSE create mode 100755 node_modules/@types/babel__traverse/README.md create mode 100755 node_modules/@types/babel__traverse/index.d.ts create mode 100755 node_modules/@types/babel__traverse/package.json create mode 100755 node_modules/@types/graceful-fs/LICENSE create mode 100755 node_modules/@types/graceful-fs/README.md create mode 100755 node_modules/@types/graceful-fs/index.d.ts create mode 100755 node_modules/@types/graceful-fs/package.json create mode 100755 node_modules/@types/istanbul-lib-coverage/LICENSE create mode 100755 node_modules/@types/istanbul-lib-coverage/README.md create mode 100755 node_modules/@types/istanbul-lib-coverage/index.d.ts create mode 100755 node_modules/@types/istanbul-lib-coverage/package.json create mode 100755 node_modules/@types/istanbul-lib-report/LICENSE create mode 100755 node_modules/@types/istanbul-lib-report/README.md create mode 100755 node_modules/@types/istanbul-lib-report/index.d.ts create mode 100755 node_modules/@types/istanbul-lib-report/package.json create mode 100755 node_modules/@types/istanbul-reports/LICENSE create mode 100755 node_modules/@types/istanbul-reports/README.md create mode 100755 node_modules/@types/istanbul-reports/index.d.ts create mode 100755 node_modules/@types/istanbul-reports/package.json create mode 100755 node_modules/@types/node/LICENSE create mode 100755 node_modules/@types/node/README.md create mode 100755 node_modules/@types/node/assert.d.ts create mode 100755 node_modules/@types/node/assert/strict.d.ts create mode 100755 node_modules/@types/node/async_hooks.d.ts create mode 100755 node_modules/@types/node/buffer.d.ts create mode 100755 node_modules/@types/node/child_process.d.ts create mode 100755 node_modules/@types/node/cluster.d.ts create mode 100755 node_modules/@types/node/console.d.ts create mode 100755 node_modules/@types/node/constants.d.ts create mode 100755 node_modules/@types/node/crypto.d.ts create mode 100755 node_modules/@types/node/dgram.d.ts create mode 100755 node_modules/@types/node/diagnostics_channel.d.ts create mode 100755 node_modules/@types/node/dns.d.ts create mode 100755 node_modules/@types/node/dns/promises.d.ts create mode 100755 node_modules/@types/node/dom-events.d.ts create mode 100755 node_modules/@types/node/domain.d.ts create mode 100755 node_modules/@types/node/events.d.ts create mode 100755 node_modules/@types/node/fs.d.ts create mode 100755 node_modules/@types/node/fs/promises.d.ts create mode 100755 node_modules/@types/node/globals.d.ts create mode 100755 node_modules/@types/node/globals.global.d.ts create mode 100755 node_modules/@types/node/http.d.ts create mode 100755 node_modules/@types/node/http2.d.ts create mode 100755 node_modules/@types/node/https.d.ts create mode 100755 node_modules/@types/node/index.d.ts create mode 100755 node_modules/@types/node/inspector.d.ts create mode 100755 node_modules/@types/node/module.d.ts create mode 100755 node_modules/@types/node/net.d.ts create mode 100755 node_modules/@types/node/os.d.ts create mode 100755 node_modules/@types/node/package.json create mode 100755 node_modules/@types/node/path.d.ts create mode 100755 node_modules/@types/node/perf_hooks.d.ts create mode 100755 node_modules/@types/node/process.d.ts create mode 100755 node_modules/@types/node/punycode.d.ts create mode 100755 node_modules/@types/node/querystring.d.ts create mode 100755 node_modules/@types/node/readline.d.ts create mode 100755 node_modules/@types/node/readline/promises.d.ts create mode 100755 node_modules/@types/node/repl.d.ts create mode 100755 node_modules/@types/node/stream.d.ts create mode 100755 node_modules/@types/node/stream/consumers.d.ts create mode 100755 node_modules/@types/node/stream/promises.d.ts create mode 100755 node_modules/@types/node/stream/web.d.ts create mode 100755 node_modules/@types/node/string_decoder.d.ts create mode 100755 node_modules/@types/node/test.d.ts create mode 100755 node_modules/@types/node/timers.d.ts create mode 100755 node_modules/@types/node/timers/promises.d.ts create mode 100755 node_modules/@types/node/tls.d.ts create mode 100755 node_modules/@types/node/trace_events.d.ts create mode 100755 node_modules/@types/node/ts4.8/assert.d.ts create mode 100755 node_modules/@types/node/ts4.8/assert/strict.d.ts create mode 100755 node_modules/@types/node/ts4.8/async_hooks.d.ts create mode 100755 node_modules/@types/node/ts4.8/buffer.d.ts create mode 100755 node_modules/@types/node/ts4.8/child_process.d.ts create mode 100755 node_modules/@types/node/ts4.8/cluster.d.ts create mode 100755 node_modules/@types/node/ts4.8/console.d.ts create mode 100755 node_modules/@types/node/ts4.8/constants.d.ts create mode 100755 node_modules/@types/node/ts4.8/crypto.d.ts create mode 100755 node_modules/@types/node/ts4.8/dgram.d.ts create mode 100755 node_modules/@types/node/ts4.8/diagnostics_channel.d.ts create mode 100755 node_modules/@types/node/ts4.8/dns.d.ts create mode 100755 node_modules/@types/node/ts4.8/dns/promises.d.ts create mode 100755 node_modules/@types/node/ts4.8/dom-events.d.ts create mode 100755 node_modules/@types/node/ts4.8/domain.d.ts create mode 100755 node_modules/@types/node/ts4.8/events.d.ts create mode 100755 node_modules/@types/node/ts4.8/fs.d.ts create mode 100755 node_modules/@types/node/ts4.8/fs/promises.d.ts create mode 100755 node_modules/@types/node/ts4.8/globals.d.ts create mode 100755 node_modules/@types/node/ts4.8/globals.global.d.ts create mode 100755 node_modules/@types/node/ts4.8/http.d.ts create mode 100755 node_modules/@types/node/ts4.8/http2.d.ts create mode 100755 node_modules/@types/node/ts4.8/https.d.ts create mode 100755 node_modules/@types/node/ts4.8/index.d.ts create mode 100755 node_modules/@types/node/ts4.8/inspector.d.ts create mode 100755 node_modules/@types/node/ts4.8/module.d.ts create mode 100755 node_modules/@types/node/ts4.8/net.d.ts create mode 100755 node_modules/@types/node/ts4.8/os.d.ts create mode 100755 node_modules/@types/node/ts4.8/path.d.ts create mode 100755 node_modules/@types/node/ts4.8/perf_hooks.d.ts create mode 100755 node_modules/@types/node/ts4.8/process.d.ts create mode 100755 node_modules/@types/node/ts4.8/punycode.d.ts create mode 100755 node_modules/@types/node/ts4.8/querystring.d.ts create mode 100755 node_modules/@types/node/ts4.8/readline.d.ts create mode 100755 node_modules/@types/node/ts4.8/readline/promises.d.ts create mode 100755 node_modules/@types/node/ts4.8/repl.d.ts create mode 100755 node_modules/@types/node/ts4.8/stream.d.ts create mode 100755 node_modules/@types/node/ts4.8/stream/consumers.d.ts create mode 100755 node_modules/@types/node/ts4.8/stream/promises.d.ts create mode 100755 node_modules/@types/node/ts4.8/stream/web.d.ts create mode 100755 node_modules/@types/node/ts4.8/string_decoder.d.ts create mode 100755 node_modules/@types/node/ts4.8/test.d.ts create mode 100755 node_modules/@types/node/ts4.8/timers.d.ts create mode 100755 node_modules/@types/node/ts4.8/timers/promises.d.ts create mode 100755 node_modules/@types/node/ts4.8/tls.d.ts create mode 100755 node_modules/@types/node/ts4.8/trace_events.d.ts create mode 100755 node_modules/@types/node/ts4.8/tty.d.ts create mode 100755 node_modules/@types/node/ts4.8/url.d.ts create mode 100755 node_modules/@types/node/ts4.8/util.d.ts create mode 100755 node_modules/@types/node/ts4.8/v8.d.ts create mode 100755 node_modules/@types/node/ts4.8/vm.d.ts create mode 100755 node_modules/@types/node/ts4.8/wasi.d.ts create mode 100755 node_modules/@types/node/ts4.8/worker_threads.d.ts create mode 100755 node_modules/@types/node/ts4.8/zlib.d.ts create mode 100755 node_modules/@types/node/tty.d.ts create mode 100755 node_modules/@types/node/url.d.ts create mode 100755 node_modules/@types/node/util.d.ts create mode 100755 node_modules/@types/node/v8.d.ts create mode 100755 node_modules/@types/node/vm.d.ts create mode 100755 node_modules/@types/node/wasi.d.ts create mode 100755 node_modules/@types/node/worker_threads.d.ts create mode 100755 node_modules/@types/node/zlib.d.ts create mode 100755 node_modules/@types/prettier/LICENSE create mode 100755 node_modules/@types/prettier/README.md create mode 100755 node_modules/@types/prettier/doc.d.ts create mode 100755 node_modules/@types/prettier/index.d.ts create mode 100755 node_modules/@types/prettier/package.json create mode 100755 node_modules/@types/prettier/parser-angular.d.ts create mode 100755 node_modules/@types/prettier/parser-babel.d.ts create mode 100755 node_modules/@types/prettier/parser-espree.d.ts create mode 100755 node_modules/@types/prettier/parser-flow.d.ts create mode 100755 node_modules/@types/prettier/parser-glimmer.d.ts create mode 100755 node_modules/@types/prettier/parser-graphql.d.ts create mode 100755 node_modules/@types/prettier/parser-html.d.ts create mode 100755 node_modules/@types/prettier/parser-markdown.d.ts create mode 100755 node_modules/@types/prettier/parser-meriyah.d.ts create mode 100755 node_modules/@types/prettier/parser-postcss.d.ts create mode 100755 node_modules/@types/prettier/parser-typescript.d.ts create mode 100755 node_modules/@types/prettier/parser-yaml.d.ts create mode 100755 node_modules/@types/prettier/standalone.d.ts create mode 100755 node_modules/@types/stack-utils/LICENSE create mode 100755 node_modules/@types/stack-utils/README.md create mode 100755 node_modules/@types/stack-utils/index.d.ts create mode 100755 node_modules/@types/stack-utils/package.json create mode 100755 node_modules/@types/yargs-parser/LICENSE create mode 100755 node_modules/@types/yargs-parser/README.md create mode 100755 node_modules/@types/yargs-parser/index.d.ts create mode 100755 node_modules/@types/yargs-parser/package.json create mode 100755 node_modules/@types/yargs/LICENSE create mode 100755 node_modules/@types/yargs/README.md create mode 100755 node_modules/@types/yargs/helpers.d.mts create mode 100755 node_modules/@types/yargs/helpers.d.ts create mode 100755 node_modules/@types/yargs/index.d.mts create mode 100755 node_modules/@types/yargs/index.d.ts create mode 100755 node_modules/@types/yargs/package.json create mode 100755 node_modules/@types/yargs/yargs.d.ts mode change 100644 => 100755 node_modules/abab/LICENSE.md mode change 100644 => 100755 node_modules/abab/README.md mode change 100644 => 100755 node_modules/abab/index.d.ts mode change 100644 => 100755 node_modules/abab/index.js mode change 100644 => 100755 node_modules/abab/lib/atob.js mode change 100644 => 100755 node_modules/abab/lib/btoa.js mode change 100644 => 100755 node_modules/abab/package.json mode change 100644 => 100755 node_modules/accepts/HISTORY.md mode change 100644 => 100755 node_modules/accepts/LICENSE mode change 100644 => 100755 node_modules/accepts/README.md mode change 100644 => 100755 node_modules/accepts/index.js mode change 100644 => 100755 node_modules/accepts/package.json mode change 100644 => 100755 node_modules/acorn-globals/LICENSE mode change 100644 => 100755 node_modules/acorn-globals/README.md mode change 100644 => 100755 node_modules/acorn-globals/index.js mode change 100644 => 100755 node_modules/acorn-globals/node_modules/acorn/CHANGELOG.md mode change 100644 => 100755 node_modules/acorn-globals/node_modules/acorn/LICENSE mode change 100644 => 100755 node_modules/acorn-globals/node_modules/acorn/README.md mode change 100644 => 100755 node_modules/acorn-globals/node_modules/acorn/dist/acorn.d.ts mode change 100644 => 100755 node_modules/acorn-globals/node_modules/acorn/dist/acorn.js mode change 100644 => 100755 node_modules/acorn-globals/node_modules/acorn/dist/acorn.js.map mode change 100644 => 100755 node_modules/acorn-globals/node_modules/acorn/dist/acorn.mjs mode change 100644 => 100755 node_modules/acorn-globals/node_modules/acorn/dist/acorn.mjs.d.ts mode change 100644 => 100755 node_modules/acorn-globals/node_modules/acorn/dist/acorn.mjs.map mode change 100644 => 100755 node_modules/acorn-globals/node_modules/acorn/dist/bin.js mode change 100644 => 100755 node_modules/acorn-globals/node_modules/acorn/package.json mode change 100644 => 100755 node_modules/acorn-globals/package.json mode change 100644 => 100755 node_modules/acorn-walk/CHANGELOG.md mode change 100644 => 100755 node_modules/acorn-walk/LICENSE mode change 100644 => 100755 node_modules/acorn-walk/README.md mode change 100644 => 100755 node_modules/acorn-walk/dist/walk.d.ts mode change 100644 => 100755 node_modules/acorn-walk/dist/walk.js mode change 100644 => 100755 node_modules/acorn-walk/dist/walk.js.map mode change 100644 => 100755 node_modules/acorn-walk/dist/walk.mjs mode change 100644 => 100755 node_modules/acorn-walk/dist/walk.mjs.map mode change 100644 => 100755 node_modules/acorn-walk/package.json mode change 100644 => 100755 node_modules/acorn/CHANGELOG.md mode change 100644 => 100755 node_modules/acorn/LICENSE mode change 100644 => 100755 node_modules/acorn/README.md mode change 100644 => 100755 node_modules/acorn/dist/acorn.d.ts mode change 100644 => 100755 node_modules/acorn/dist/acorn.js mode change 100644 => 100755 node_modules/acorn/dist/acorn.mjs mode change 100644 => 100755 node_modules/acorn/dist/acorn.mjs.d.ts mode change 100644 => 100755 node_modules/acorn/dist/bin.js mode change 100644 => 100755 node_modules/acorn/package.json mode change 100644 => 100755 node_modules/agent-base/README.md mode change 100644 => 100755 node_modules/agent-base/dist/src/index.d.ts mode change 100644 => 100755 node_modules/agent-base/dist/src/index.js mode change 100644 => 100755 node_modules/agent-base/dist/src/index.js.map mode change 100644 => 100755 node_modules/agent-base/dist/src/promisify.d.ts mode change 100644 => 100755 node_modules/agent-base/dist/src/promisify.js mode change 100644 => 100755 node_modules/agent-base/dist/src/promisify.js.map mode change 100644 => 100755 node_modules/agent-base/node_modules/debug/LICENSE mode change 100644 => 100755 node_modules/agent-base/node_modules/debug/README.md mode change 100644 => 100755 node_modules/agent-base/node_modules/debug/package.json mode change 100644 => 100755 node_modules/agent-base/node_modules/debug/src/browser.js mode change 100644 => 100755 node_modules/agent-base/node_modules/debug/src/common.js mode change 100644 => 100755 node_modules/agent-base/node_modules/debug/src/index.js mode change 100644 => 100755 node_modules/agent-base/node_modules/debug/src/node.js mode change 100644 => 100755 node_modules/agent-base/node_modules/ms/index.js mode change 100644 => 100755 node_modules/agent-base/node_modules/ms/license.md mode change 100644 => 100755 node_modules/agent-base/node_modules/ms/package.json mode change 100644 => 100755 node_modules/agent-base/node_modules/ms/readme.md mode change 100644 => 100755 node_modules/agent-base/package.json mode change 100644 => 100755 node_modules/agent-base/src/index.ts mode change 100644 => 100755 node_modules/agent-base/src/promisify.ts create mode 100755 node_modules/ansi-escapes/index.d.ts create mode 100755 node_modules/ansi-escapes/index.js create mode 100755 node_modules/ansi-escapes/license create mode 100755 node_modules/ansi-escapes/package.json create mode 100755 node_modules/ansi-escapes/readme.md create mode 100755 node_modules/ansi-regex/index.d.ts create mode 100755 node_modules/ansi-regex/index.js create mode 100755 node_modules/ansi-regex/license create mode 100755 node_modules/ansi-regex/package.json create mode 100755 node_modules/ansi-regex/readme.md create mode 100755 node_modules/ansi-styles/index.d.ts create mode 100755 node_modules/ansi-styles/index.js create mode 100755 node_modules/ansi-styles/license create mode 100755 node_modules/ansi-styles/package.json create mode 100755 node_modules/ansi-styles/readme.md create mode 100755 node_modules/anymatch/LICENSE create mode 100755 node_modules/anymatch/README.md create mode 100755 node_modules/anymatch/index.d.ts create mode 100755 node_modules/anymatch/index.js create mode 100755 node_modules/anymatch/package.json create mode 100755 node_modules/argparse/CHANGELOG.md create mode 100755 node_modules/argparse/LICENSE create mode 100755 node_modules/argparse/README.md create mode 100755 node_modules/argparse/index.js create mode 100755 node_modules/argparse/lib/action.js create mode 100755 node_modules/argparse/lib/action/append.js create mode 100755 node_modules/argparse/lib/action/append/constant.js create mode 100755 node_modules/argparse/lib/action/count.js create mode 100755 node_modules/argparse/lib/action/help.js create mode 100755 node_modules/argparse/lib/action/store.js create mode 100755 node_modules/argparse/lib/action/store/constant.js create mode 100755 node_modules/argparse/lib/action/store/false.js create mode 100755 node_modules/argparse/lib/action/store/true.js create mode 100755 node_modules/argparse/lib/action/subparsers.js create mode 100755 node_modules/argparse/lib/action/version.js create mode 100755 node_modules/argparse/lib/action_container.js create mode 100755 node_modules/argparse/lib/argparse.js create mode 100755 node_modules/argparse/lib/argument/error.js create mode 100755 node_modules/argparse/lib/argument/exclusive.js create mode 100755 node_modules/argparse/lib/argument/group.js create mode 100755 node_modules/argparse/lib/argument_parser.js create mode 100755 node_modules/argparse/lib/const.js create mode 100755 node_modules/argparse/lib/help/added_formatters.js create mode 100755 node_modules/argparse/lib/help/formatter.js create mode 100755 node_modules/argparse/lib/namespace.js create mode 100755 node_modules/argparse/lib/utils.js create mode 100755 node_modules/argparse/package.json mode change 100644 => 100755 node_modules/array-flatten/LICENSE mode change 100644 => 100755 node_modules/array-flatten/README.md mode change 100644 => 100755 node_modules/array-flatten/array-flatten.js mode change 100644 => 100755 node_modules/array-flatten/package.json mode change 100644 => 100755 node_modules/asynckit/LICENSE mode change 100644 => 100755 node_modules/asynckit/README.md mode change 100644 => 100755 node_modules/asynckit/bench.js mode change 100644 => 100755 node_modules/asynckit/index.js mode change 100644 => 100755 node_modules/asynckit/lib/abort.js mode change 100644 => 100755 node_modules/asynckit/lib/async.js mode change 100644 => 100755 node_modules/asynckit/lib/defer.js mode change 100644 => 100755 node_modules/asynckit/lib/iterate.js mode change 100644 => 100755 node_modules/asynckit/lib/readable_asynckit.js mode change 100644 => 100755 node_modules/asynckit/lib/readable_parallel.js mode change 100644 => 100755 node_modules/asynckit/lib/readable_serial.js mode change 100644 => 100755 node_modules/asynckit/lib/readable_serial_ordered.js mode change 100644 => 100755 node_modules/asynckit/lib/state.js mode change 100644 => 100755 node_modules/asynckit/lib/streamify.js mode change 100644 => 100755 node_modules/asynckit/lib/terminator.js mode change 100644 => 100755 node_modules/asynckit/package.json mode change 100644 => 100755 node_modules/asynckit/parallel.js mode change 100644 => 100755 node_modules/asynckit/serial.js mode change 100644 => 100755 node_modules/asynckit/serialOrdered.js mode change 100644 => 100755 node_modules/asynckit/stream.js create mode 100755 node_modules/babel-jest/LICENSE create mode 100755 node_modules/babel-jest/README.md create mode 100755 node_modules/babel-jest/build/index.d.ts create mode 100755 node_modules/babel-jest/build/index.js create mode 100755 node_modules/babel-jest/build/loadBabelConfig.js create mode 100755 node_modules/babel-jest/package.json create mode 100755 node_modules/babel-plugin-istanbul/CHANGELOG.md create mode 100755 node_modules/babel-plugin-istanbul/LICENSE create mode 100755 node_modules/babel-plugin-istanbul/README.md create mode 100755 node_modules/babel-plugin-istanbul/lib/index.js create mode 100755 node_modules/babel-plugin-istanbul/lib/load-nyc-config-sync.js create mode 100755 node_modules/babel-plugin-istanbul/package.json create mode 100755 node_modules/babel-plugin-jest-hoist/LICENSE create mode 100755 node_modules/babel-plugin-jest-hoist/README.md create mode 100755 node_modules/babel-plugin-jest-hoist/build/index.d.ts create mode 100755 node_modules/babel-plugin-jest-hoist/build/index.js create mode 100755 node_modules/babel-plugin-jest-hoist/package.json create mode 100755 node_modules/babel-preset-current-node-syntax/LICENSE create mode 100755 node_modules/babel-preset-current-node-syntax/README.md create mode 100755 node_modules/babel-preset-current-node-syntax/package.json create mode 100755 node_modules/babel-preset-current-node-syntax/scripts/check-yarn-bug.sh create mode 100755 node_modules/babel-preset-current-node-syntax/src/index.js create mode 100755 node_modules/babel-preset-jest/LICENSE create mode 100755 node_modules/babel-preset-jest/README.md create mode 100755 node_modules/babel-preset-jest/index.js create mode 100755 node_modules/babel-preset-jest/package.json create mode 100755 node_modules/balanced-match/.github/FUNDING.yml create mode 100755 node_modules/balanced-match/LICENSE.md create mode 100755 node_modules/balanced-match/README.md create mode 100755 node_modules/balanced-match/index.js create mode 100755 node_modules/balanced-match/package.json mode change 100644 => 100755 node_modules/body-parser/HISTORY.md mode change 100644 => 100755 node_modules/body-parser/LICENSE mode change 100644 => 100755 node_modules/body-parser/README.md mode change 100644 => 100755 node_modules/body-parser/SECURITY.md mode change 100644 => 100755 node_modules/body-parser/index.js mode change 100644 => 100755 node_modules/body-parser/lib/read.js mode change 100644 => 100755 node_modules/body-parser/lib/types/json.js mode change 100644 => 100755 node_modules/body-parser/lib/types/raw.js mode change 100644 => 100755 node_modules/body-parser/lib/types/text.js mode change 100644 => 100755 node_modules/body-parser/lib/types/urlencoded.js mode change 100644 => 100755 node_modules/body-parser/package.json create mode 100755 node_modules/brace-expansion/LICENSE create mode 100755 node_modules/brace-expansion/README.md create mode 100755 node_modules/brace-expansion/index.js create mode 100755 node_modules/brace-expansion/package.json create mode 100755 node_modules/braces/CHANGELOG.md create mode 100755 node_modules/braces/LICENSE create mode 100755 node_modules/braces/README.md create mode 100755 node_modules/braces/index.js create mode 100755 node_modules/braces/lib/compile.js create mode 100755 node_modules/braces/lib/constants.js create mode 100755 node_modules/braces/lib/expand.js create mode 100755 node_modules/braces/lib/parse.js create mode 100755 node_modules/braces/lib/stringify.js create mode 100755 node_modules/braces/lib/utils.js create mode 100755 node_modules/braces/package.json mode change 100644 => 100755 node_modules/browser-process-hrtime/LICENSE mode change 100644 => 100755 node_modules/browser-process-hrtime/README.md mode change 100644 => 100755 node_modules/browser-process-hrtime/index.d.ts mode change 100644 => 100755 node_modules/browser-process-hrtime/index.js mode change 100644 => 100755 node_modules/browser-process-hrtime/package.json create mode 100755 node_modules/browserslist/LICENSE create mode 100755 node_modules/browserslist/README.md create mode 100755 node_modules/browserslist/browser.js create mode 100755 node_modules/browserslist/cli.js create mode 100755 node_modules/browserslist/error.d.ts create mode 100755 node_modules/browserslist/error.js create mode 100755 node_modules/browserslist/index.d.ts create mode 100755 node_modules/browserslist/index.js create mode 100755 node_modules/browserslist/node.js create mode 100755 node_modules/browserslist/package.json create mode 100755 node_modules/browserslist/parse.js create mode 100755 node_modules/bser/README.md create mode 100755 node_modules/bser/index.js create mode 100755 node_modules/bser/package.json create mode 100755 node_modules/buffer-from/LICENSE create mode 100755 node_modules/buffer-from/index.js create mode 100755 node_modules/buffer-from/package.json create mode 100755 node_modules/buffer-from/readme.md mode change 100644 => 100755 node_modules/bytes/History.md mode change 100644 => 100755 node_modules/bytes/LICENSE mode change 100644 => 100755 node_modules/bytes/Readme.md mode change 100644 => 100755 node_modules/bytes/index.js mode change 100644 => 100755 node_modules/bytes/package.json mode change 100644 => 100755 node_modules/call-bind/.eslintignore mode change 100644 => 100755 node_modules/call-bind/.eslintrc mode change 100644 => 100755 node_modules/call-bind/.github/FUNDING.yml mode change 100644 => 100755 node_modules/call-bind/.nycrc mode change 100644 => 100755 node_modules/call-bind/CHANGELOG.md mode change 100644 => 100755 node_modules/call-bind/LICENSE mode change 100644 => 100755 node_modules/call-bind/README.md mode change 100644 => 100755 node_modules/call-bind/callBound.js mode change 100644 => 100755 node_modules/call-bind/index.js mode change 100644 => 100755 node_modules/call-bind/package.json mode change 100644 => 100755 node_modules/call-bind/test/callBound.js mode change 100644 => 100755 node_modules/call-bind/test/index.js create mode 100755 node_modules/callsites/index.d.ts create mode 100755 node_modules/callsites/index.js create mode 100755 node_modules/callsites/license create mode 100755 node_modules/callsites/package.json create mode 100755 node_modules/callsites/readme.md create mode 100755 node_modules/camelcase/index.d.ts create mode 100755 node_modules/camelcase/index.js create mode 100755 node_modules/camelcase/license create mode 100755 node_modules/camelcase/package.json create mode 100755 node_modules/camelcase/readme.md create mode 100755 node_modules/caniuse-lite/LICENSE create mode 100755 node_modules/caniuse-lite/README.md create mode 100755 node_modules/caniuse-lite/data/agents.js create mode 100755 node_modules/caniuse-lite/data/browserVersions.js create mode 100755 node_modules/caniuse-lite/data/browsers.js create mode 100755 node_modules/caniuse-lite/data/features.js create mode 100755 node_modules/caniuse-lite/data/features/aac.js create mode 100755 node_modules/caniuse-lite/data/features/abortcontroller.js create mode 100755 node_modules/caniuse-lite/data/features/ac3-ec3.js create mode 100755 node_modules/caniuse-lite/data/features/accelerometer.js create mode 100755 node_modules/caniuse-lite/data/features/addeventlistener.js create mode 100755 node_modules/caniuse-lite/data/features/alternate-stylesheet.js create mode 100755 node_modules/caniuse-lite/data/features/ambient-light.js create mode 100755 node_modules/caniuse-lite/data/features/apng.js create mode 100755 node_modules/caniuse-lite/data/features/array-find-index.js create mode 100755 node_modules/caniuse-lite/data/features/array-find.js create mode 100755 node_modules/caniuse-lite/data/features/array-flat.js create mode 100755 node_modules/caniuse-lite/data/features/array-includes.js create mode 100755 node_modules/caniuse-lite/data/features/arrow-functions.js create mode 100755 node_modules/caniuse-lite/data/features/asmjs.js create mode 100755 node_modules/caniuse-lite/data/features/async-clipboard.js create mode 100755 node_modules/caniuse-lite/data/features/async-functions.js create mode 100755 node_modules/caniuse-lite/data/features/atob-btoa.js create mode 100755 node_modules/caniuse-lite/data/features/audio-api.js create mode 100755 node_modules/caniuse-lite/data/features/audio.js create mode 100755 node_modules/caniuse-lite/data/features/audiotracks.js create mode 100755 node_modules/caniuse-lite/data/features/autofocus.js create mode 100755 node_modules/caniuse-lite/data/features/auxclick.js create mode 100755 node_modules/caniuse-lite/data/features/av1.js create mode 100755 node_modules/caniuse-lite/data/features/avif.js create mode 100755 node_modules/caniuse-lite/data/features/background-attachment.js create mode 100755 node_modules/caniuse-lite/data/features/background-clip-text.js create mode 100755 node_modules/caniuse-lite/data/features/background-img-opts.js create mode 100755 node_modules/caniuse-lite/data/features/background-position-x-y.js create mode 100755 node_modules/caniuse-lite/data/features/background-repeat-round-space.js create mode 100755 node_modules/caniuse-lite/data/features/background-sync.js create mode 100755 node_modules/caniuse-lite/data/features/battery-status.js create mode 100755 node_modules/caniuse-lite/data/features/beacon.js create mode 100755 node_modules/caniuse-lite/data/features/beforeafterprint.js create mode 100755 node_modules/caniuse-lite/data/features/bigint.js create mode 100755 node_modules/caniuse-lite/data/features/blobbuilder.js create mode 100755 node_modules/caniuse-lite/data/features/bloburls.js create mode 100755 node_modules/caniuse-lite/data/features/border-image.js create mode 100755 node_modules/caniuse-lite/data/features/border-radius.js create mode 100755 node_modules/caniuse-lite/data/features/broadcastchannel.js create mode 100755 node_modules/caniuse-lite/data/features/brotli.js create mode 100755 node_modules/caniuse-lite/data/features/calc.js create mode 100755 node_modules/caniuse-lite/data/features/canvas-blending.js create mode 100755 node_modules/caniuse-lite/data/features/canvas-text.js create mode 100755 node_modules/caniuse-lite/data/features/canvas.js create mode 100755 node_modules/caniuse-lite/data/features/ch-unit.js create mode 100755 node_modules/caniuse-lite/data/features/chacha20-poly1305.js create mode 100755 node_modules/caniuse-lite/data/features/channel-messaging.js create mode 100755 node_modules/caniuse-lite/data/features/childnode-remove.js create mode 100755 node_modules/caniuse-lite/data/features/classlist.js create mode 100755 node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js create mode 100755 node_modules/caniuse-lite/data/features/clipboard.js create mode 100755 node_modules/caniuse-lite/data/features/colr-v1.js create mode 100755 node_modules/caniuse-lite/data/features/colr.js create mode 100755 node_modules/caniuse-lite/data/features/comparedocumentposition.js create mode 100755 node_modules/caniuse-lite/data/features/console-basic.js create mode 100755 node_modules/caniuse-lite/data/features/console-time.js create mode 100755 node_modules/caniuse-lite/data/features/const.js create mode 100755 node_modules/caniuse-lite/data/features/constraint-validation.js create mode 100755 node_modules/caniuse-lite/data/features/contenteditable.js create mode 100755 node_modules/caniuse-lite/data/features/contentsecuritypolicy.js create mode 100755 node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js create mode 100755 node_modules/caniuse-lite/data/features/cookie-store-api.js create mode 100755 node_modules/caniuse-lite/data/features/cors.js create mode 100755 node_modules/caniuse-lite/data/features/createimagebitmap.js create mode 100755 node_modules/caniuse-lite/data/features/credential-management.js create mode 100755 node_modules/caniuse-lite/data/features/cryptography.js create mode 100755 node_modules/caniuse-lite/data/features/css-all.js create mode 100755 node_modules/caniuse-lite/data/features/css-animation.js create mode 100755 node_modules/caniuse-lite/data/features/css-any-link.js create mode 100755 node_modules/caniuse-lite/data/features/css-appearance.js create mode 100755 node_modules/caniuse-lite/data/features/css-at-counter-style.js create mode 100755 node_modules/caniuse-lite/data/features/css-autofill.js create mode 100755 node_modules/caniuse-lite/data/features/css-backdrop-filter.js create mode 100755 node_modules/caniuse-lite/data/features/css-background-offsets.js create mode 100755 node_modules/caniuse-lite/data/features/css-backgroundblendmode.js create mode 100755 node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js create mode 100755 node_modules/caniuse-lite/data/features/css-boxshadow.js create mode 100755 node_modules/caniuse-lite/data/features/css-canvas.js create mode 100755 node_modules/caniuse-lite/data/features/css-caret-color.js create mode 100755 node_modules/caniuse-lite/data/features/css-cascade-layers.js create mode 100755 node_modules/caniuse-lite/data/features/css-case-insensitive.js create mode 100755 node_modules/caniuse-lite/data/features/css-clip-path.js create mode 100755 node_modules/caniuse-lite/data/features/css-color-adjust.js create mode 100755 node_modules/caniuse-lite/data/features/css-color-function.js create mode 100755 node_modules/caniuse-lite/data/features/css-conic-gradients.js create mode 100755 node_modules/caniuse-lite/data/features/css-container-queries.js create mode 100755 node_modules/caniuse-lite/data/features/css-container-query-units.js create mode 100755 node_modules/caniuse-lite/data/features/css-containment.js create mode 100755 node_modules/caniuse-lite/data/features/css-content-visibility.js create mode 100755 node_modules/caniuse-lite/data/features/css-counters.js create mode 100755 node_modules/caniuse-lite/data/features/css-crisp-edges.js create mode 100755 node_modules/caniuse-lite/data/features/css-cross-fade.js create mode 100755 node_modules/caniuse-lite/data/features/css-default-pseudo.js create mode 100755 node_modules/caniuse-lite/data/features/css-descendant-gtgt.js create mode 100755 node_modules/caniuse-lite/data/features/css-deviceadaptation.js create mode 100755 node_modules/caniuse-lite/data/features/css-dir-pseudo.js create mode 100755 node_modules/caniuse-lite/data/features/css-display-contents.js create mode 100755 node_modules/caniuse-lite/data/features/css-element-function.js create mode 100755 node_modules/caniuse-lite/data/features/css-env-function.js create mode 100755 node_modules/caniuse-lite/data/features/css-exclusions.js create mode 100755 node_modules/caniuse-lite/data/features/css-featurequeries.js create mode 100755 node_modules/caniuse-lite/data/features/css-file-selector-button.js create mode 100755 node_modules/caniuse-lite/data/features/css-filter-function.js create mode 100755 node_modules/caniuse-lite/data/features/css-filters.js create mode 100755 node_modules/caniuse-lite/data/features/css-first-letter.js create mode 100755 node_modules/caniuse-lite/data/features/css-first-line.js create mode 100755 node_modules/caniuse-lite/data/features/css-fixed.js create mode 100755 node_modules/caniuse-lite/data/features/css-focus-visible.js create mode 100755 node_modules/caniuse-lite/data/features/css-focus-within.js create mode 100755 node_modules/caniuse-lite/data/features/css-font-palette.js create mode 100755 node_modules/caniuse-lite/data/features/css-font-rendering-controls.js create mode 100755 node_modules/caniuse-lite/data/features/css-font-stretch.js create mode 100755 node_modules/caniuse-lite/data/features/css-gencontent.js create mode 100755 node_modules/caniuse-lite/data/features/css-gradients.js create mode 100755 node_modules/caniuse-lite/data/features/css-grid-animation.js create mode 100755 node_modules/caniuse-lite/data/features/css-grid.js create mode 100755 node_modules/caniuse-lite/data/features/css-hanging-punctuation.js create mode 100755 node_modules/caniuse-lite/data/features/css-has.js create mode 100755 node_modules/caniuse-lite/data/features/css-hyphens.js create mode 100755 node_modules/caniuse-lite/data/features/css-image-orientation.js create mode 100755 node_modules/caniuse-lite/data/features/css-image-set.js create mode 100755 node_modules/caniuse-lite/data/features/css-in-out-of-range.js create mode 100755 node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js create mode 100755 node_modules/caniuse-lite/data/features/css-initial-letter.js create mode 100755 node_modules/caniuse-lite/data/features/css-initial-value.js create mode 100755 node_modules/caniuse-lite/data/features/css-lch-lab.js create mode 100755 node_modules/caniuse-lite/data/features/css-letter-spacing.js create mode 100755 node_modules/caniuse-lite/data/features/css-line-clamp.js create mode 100755 node_modules/caniuse-lite/data/features/css-logical-props.js create mode 100755 node_modules/caniuse-lite/data/features/css-marker-pseudo.js create mode 100755 node_modules/caniuse-lite/data/features/css-masks.js create mode 100755 node_modules/caniuse-lite/data/features/css-matches-pseudo.js create mode 100755 node_modules/caniuse-lite/data/features/css-math-functions.js create mode 100755 node_modules/caniuse-lite/data/features/css-media-interaction.js create mode 100755 node_modules/caniuse-lite/data/features/css-media-range-syntax.js create mode 100755 node_modules/caniuse-lite/data/features/css-media-resolution.js create mode 100755 node_modules/caniuse-lite/data/features/css-media-scripting.js create mode 100755 node_modules/caniuse-lite/data/features/css-mediaqueries.js create mode 100755 node_modules/caniuse-lite/data/features/css-mixblendmode.js create mode 100755 node_modules/caniuse-lite/data/features/css-motion-paths.js create mode 100755 node_modules/caniuse-lite/data/features/css-namespaces.js create mode 100755 node_modules/caniuse-lite/data/features/css-nesting.js create mode 100755 node_modules/caniuse-lite/data/features/css-not-sel-list.js create mode 100755 node_modules/caniuse-lite/data/features/css-nth-child-of.js create mode 100755 node_modules/caniuse-lite/data/features/css-opacity.js create mode 100755 node_modules/caniuse-lite/data/features/css-optional-pseudo.js create mode 100755 node_modules/caniuse-lite/data/features/css-overflow-anchor.js create mode 100755 node_modules/caniuse-lite/data/features/css-overflow-overlay.js create mode 100755 node_modules/caniuse-lite/data/features/css-overflow.js create mode 100755 node_modules/caniuse-lite/data/features/css-overscroll-behavior.js create mode 100755 node_modules/caniuse-lite/data/features/css-page-break.js create mode 100755 node_modules/caniuse-lite/data/features/css-paged-media.js create mode 100755 node_modules/caniuse-lite/data/features/css-paint-api.js create mode 100755 node_modules/caniuse-lite/data/features/css-placeholder-shown.js create mode 100755 node_modules/caniuse-lite/data/features/css-placeholder.js create mode 100755 node_modules/caniuse-lite/data/features/css-print-color-adjust.js create mode 100755 node_modules/caniuse-lite/data/features/css-read-only-write.js create mode 100755 node_modules/caniuse-lite/data/features/css-rebeccapurple.js create mode 100755 node_modules/caniuse-lite/data/features/css-reflections.js create mode 100755 node_modules/caniuse-lite/data/features/css-regions.js create mode 100755 node_modules/caniuse-lite/data/features/css-repeating-gradients.js create mode 100755 node_modules/caniuse-lite/data/features/css-resize.js create mode 100755 node_modules/caniuse-lite/data/features/css-revert-value.js create mode 100755 node_modules/caniuse-lite/data/features/css-rrggbbaa.js create mode 100755 node_modules/caniuse-lite/data/features/css-scroll-behavior.js create mode 100755 node_modules/caniuse-lite/data/features/css-scroll-timeline.js create mode 100755 node_modules/caniuse-lite/data/features/css-scrollbar.js create mode 100755 node_modules/caniuse-lite/data/features/css-sel2.js create mode 100755 node_modules/caniuse-lite/data/features/css-sel3.js create mode 100755 node_modules/caniuse-lite/data/features/css-selection.js create mode 100755 node_modules/caniuse-lite/data/features/css-shapes.js create mode 100755 node_modules/caniuse-lite/data/features/css-snappoints.js create mode 100755 node_modules/caniuse-lite/data/features/css-sticky.js create mode 100755 node_modules/caniuse-lite/data/features/css-subgrid.js create mode 100755 node_modules/caniuse-lite/data/features/css-supports-api.js create mode 100755 node_modules/caniuse-lite/data/features/css-table.js create mode 100755 node_modules/caniuse-lite/data/features/css-text-align-last.js create mode 100755 node_modules/caniuse-lite/data/features/css-text-indent.js create mode 100755 node_modules/caniuse-lite/data/features/css-text-justify.js create mode 100755 node_modules/caniuse-lite/data/features/css-text-orientation.js create mode 100755 node_modules/caniuse-lite/data/features/css-text-spacing.js create mode 100755 node_modules/caniuse-lite/data/features/css-textshadow.js create mode 100755 node_modules/caniuse-lite/data/features/css-touch-action.js create mode 100755 node_modules/caniuse-lite/data/features/css-transitions.js create mode 100755 node_modules/caniuse-lite/data/features/css-unicode-bidi.js create mode 100755 node_modules/caniuse-lite/data/features/css-unset-value.js create mode 100755 node_modules/caniuse-lite/data/features/css-variables.js create mode 100755 node_modules/caniuse-lite/data/features/css-when-else.js create mode 100755 node_modules/caniuse-lite/data/features/css-widows-orphans.js create mode 100755 node_modules/caniuse-lite/data/features/css-width-stretch.js create mode 100755 node_modules/caniuse-lite/data/features/css-writing-mode.js create mode 100755 node_modules/caniuse-lite/data/features/css-zoom.js create mode 100755 node_modules/caniuse-lite/data/features/css3-attr.js create mode 100755 node_modules/caniuse-lite/data/features/css3-boxsizing.js create mode 100755 node_modules/caniuse-lite/data/features/css3-colors.js create mode 100755 node_modules/caniuse-lite/data/features/css3-cursors-grab.js create mode 100755 node_modules/caniuse-lite/data/features/css3-cursors-newer.js create mode 100755 node_modules/caniuse-lite/data/features/css3-cursors.js create mode 100755 node_modules/caniuse-lite/data/features/css3-tabsize.js create mode 100755 node_modules/caniuse-lite/data/features/currentcolor.js create mode 100755 node_modules/caniuse-lite/data/features/custom-elements.js create mode 100755 node_modules/caniuse-lite/data/features/custom-elementsv1.js create mode 100755 node_modules/caniuse-lite/data/features/customevent.js create mode 100755 node_modules/caniuse-lite/data/features/datalist.js create mode 100755 node_modules/caniuse-lite/data/features/dataset.js create mode 100755 node_modules/caniuse-lite/data/features/datauri.js create mode 100755 node_modules/caniuse-lite/data/features/date-tolocaledatestring.js create mode 100755 node_modules/caniuse-lite/data/features/declarative-shadow-dom.js create mode 100755 node_modules/caniuse-lite/data/features/decorators.js create mode 100755 node_modules/caniuse-lite/data/features/details.js create mode 100755 node_modules/caniuse-lite/data/features/deviceorientation.js create mode 100755 node_modules/caniuse-lite/data/features/devicepixelratio.js create mode 100755 node_modules/caniuse-lite/data/features/dialog.js create mode 100755 node_modules/caniuse-lite/data/features/dispatchevent.js create mode 100755 node_modules/caniuse-lite/data/features/dnssec.js create mode 100755 node_modules/caniuse-lite/data/features/do-not-track.js create mode 100755 node_modules/caniuse-lite/data/features/document-currentscript.js create mode 100755 node_modules/caniuse-lite/data/features/document-evaluate-xpath.js create mode 100755 node_modules/caniuse-lite/data/features/document-execcommand.js create mode 100755 node_modules/caniuse-lite/data/features/document-policy.js create mode 100755 node_modules/caniuse-lite/data/features/document-scrollingelement.js create mode 100755 node_modules/caniuse-lite/data/features/documenthead.js create mode 100755 node_modules/caniuse-lite/data/features/dom-manip-convenience.js create mode 100755 node_modules/caniuse-lite/data/features/dom-range.js create mode 100755 node_modules/caniuse-lite/data/features/domcontentloaded.js create mode 100755 node_modules/caniuse-lite/data/features/dommatrix.js create mode 100755 node_modules/caniuse-lite/data/features/download.js create mode 100755 node_modules/caniuse-lite/data/features/dragndrop.js create mode 100755 node_modules/caniuse-lite/data/features/element-closest.js create mode 100755 node_modules/caniuse-lite/data/features/element-from-point.js create mode 100755 node_modules/caniuse-lite/data/features/element-scroll-methods.js create mode 100755 node_modules/caniuse-lite/data/features/eme.js create mode 100755 node_modules/caniuse-lite/data/features/eot.js create mode 100755 node_modules/caniuse-lite/data/features/es5.js create mode 100755 node_modules/caniuse-lite/data/features/es6-class.js create mode 100755 node_modules/caniuse-lite/data/features/es6-generators.js create mode 100755 node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js create mode 100755 node_modules/caniuse-lite/data/features/es6-module.js create mode 100755 node_modules/caniuse-lite/data/features/es6-number.js create mode 100755 node_modules/caniuse-lite/data/features/es6-string-includes.js create mode 100755 node_modules/caniuse-lite/data/features/es6.js create mode 100755 node_modules/caniuse-lite/data/features/eventsource.js create mode 100755 node_modules/caniuse-lite/data/features/extended-system-fonts.js create mode 100755 node_modules/caniuse-lite/data/features/feature-policy.js create mode 100755 node_modules/caniuse-lite/data/features/fetch.js create mode 100755 node_modules/caniuse-lite/data/features/fieldset-disabled.js create mode 100755 node_modules/caniuse-lite/data/features/fileapi.js create mode 100755 node_modules/caniuse-lite/data/features/filereader.js create mode 100755 node_modules/caniuse-lite/data/features/filereadersync.js create mode 100755 node_modules/caniuse-lite/data/features/filesystem.js create mode 100755 node_modules/caniuse-lite/data/features/flac.js create mode 100755 node_modules/caniuse-lite/data/features/flexbox-gap.js create mode 100755 node_modules/caniuse-lite/data/features/flexbox.js create mode 100755 node_modules/caniuse-lite/data/features/flow-root.js create mode 100755 node_modules/caniuse-lite/data/features/focusin-focusout-events.js create mode 100755 node_modules/caniuse-lite/data/features/font-family-system-ui.js create mode 100755 node_modules/caniuse-lite/data/features/font-feature.js create mode 100755 node_modules/caniuse-lite/data/features/font-kerning.js create mode 100755 node_modules/caniuse-lite/data/features/font-loading.js create mode 100755 node_modules/caniuse-lite/data/features/font-size-adjust.js create mode 100755 node_modules/caniuse-lite/data/features/font-smooth.js create mode 100755 node_modules/caniuse-lite/data/features/font-unicode-range.js create mode 100755 node_modules/caniuse-lite/data/features/font-variant-alternates.js create mode 100755 node_modules/caniuse-lite/data/features/font-variant-numeric.js create mode 100755 node_modules/caniuse-lite/data/features/fontface.js create mode 100755 node_modules/caniuse-lite/data/features/form-attribute.js create mode 100755 node_modules/caniuse-lite/data/features/form-submit-attributes.js create mode 100755 node_modules/caniuse-lite/data/features/form-validation.js create mode 100755 node_modules/caniuse-lite/data/features/forms.js create mode 100755 node_modules/caniuse-lite/data/features/fullscreen.js create mode 100755 node_modules/caniuse-lite/data/features/gamepad.js create mode 100755 node_modules/caniuse-lite/data/features/geolocation.js create mode 100755 node_modules/caniuse-lite/data/features/getboundingclientrect.js create mode 100755 node_modules/caniuse-lite/data/features/getcomputedstyle.js create mode 100755 node_modules/caniuse-lite/data/features/getelementsbyclassname.js create mode 100755 node_modules/caniuse-lite/data/features/getrandomvalues.js create mode 100755 node_modules/caniuse-lite/data/features/gyroscope.js create mode 100755 node_modules/caniuse-lite/data/features/hardwareconcurrency.js create mode 100755 node_modules/caniuse-lite/data/features/hashchange.js create mode 100755 node_modules/caniuse-lite/data/features/heif.js create mode 100755 node_modules/caniuse-lite/data/features/hevc.js create mode 100755 node_modules/caniuse-lite/data/features/hidden.js create mode 100755 node_modules/caniuse-lite/data/features/high-resolution-time.js create mode 100755 node_modules/caniuse-lite/data/features/history.js create mode 100755 node_modules/caniuse-lite/data/features/html-media-capture.js create mode 100755 node_modules/caniuse-lite/data/features/html5semantic.js create mode 100755 node_modules/caniuse-lite/data/features/http-live-streaming.js create mode 100755 node_modules/caniuse-lite/data/features/http2.js create mode 100755 node_modules/caniuse-lite/data/features/http3.js create mode 100755 node_modules/caniuse-lite/data/features/iframe-sandbox.js create mode 100755 node_modules/caniuse-lite/data/features/iframe-seamless.js create mode 100755 node_modules/caniuse-lite/data/features/iframe-srcdoc.js create mode 100755 node_modules/caniuse-lite/data/features/imagecapture.js create mode 100755 node_modules/caniuse-lite/data/features/ime.js create mode 100755 node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js create mode 100755 node_modules/caniuse-lite/data/features/import-maps.js create mode 100755 node_modules/caniuse-lite/data/features/imports.js create mode 100755 node_modules/caniuse-lite/data/features/indeterminate-checkbox.js create mode 100755 node_modules/caniuse-lite/data/features/indexeddb.js create mode 100755 node_modules/caniuse-lite/data/features/indexeddb2.js create mode 100755 node_modules/caniuse-lite/data/features/inline-block.js create mode 100755 node_modules/caniuse-lite/data/features/innertext.js create mode 100755 node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js create mode 100755 node_modules/caniuse-lite/data/features/input-color.js create mode 100755 node_modules/caniuse-lite/data/features/input-datetime.js create mode 100755 node_modules/caniuse-lite/data/features/input-email-tel-url.js create mode 100755 node_modules/caniuse-lite/data/features/input-event.js create mode 100755 node_modules/caniuse-lite/data/features/input-file-accept.js create mode 100755 node_modules/caniuse-lite/data/features/input-file-directory.js create mode 100755 node_modules/caniuse-lite/data/features/input-file-multiple.js create mode 100755 node_modules/caniuse-lite/data/features/input-inputmode.js create mode 100755 node_modules/caniuse-lite/data/features/input-minlength.js create mode 100755 node_modules/caniuse-lite/data/features/input-number.js create mode 100755 node_modules/caniuse-lite/data/features/input-pattern.js create mode 100755 node_modules/caniuse-lite/data/features/input-placeholder.js create mode 100755 node_modules/caniuse-lite/data/features/input-range.js create mode 100755 node_modules/caniuse-lite/data/features/input-search.js create mode 100755 node_modules/caniuse-lite/data/features/input-selection.js create mode 100755 node_modules/caniuse-lite/data/features/insert-adjacent.js create mode 100755 node_modules/caniuse-lite/data/features/insertadjacenthtml.js create mode 100755 node_modules/caniuse-lite/data/features/internationalization.js create mode 100755 node_modules/caniuse-lite/data/features/intersectionobserver-v2.js create mode 100755 node_modules/caniuse-lite/data/features/intersectionobserver.js create mode 100755 node_modules/caniuse-lite/data/features/intl-pluralrules.js create mode 100755 node_modules/caniuse-lite/data/features/intrinsic-width.js create mode 100755 node_modules/caniuse-lite/data/features/jpeg2000.js create mode 100755 node_modules/caniuse-lite/data/features/jpegxl.js create mode 100755 node_modules/caniuse-lite/data/features/jpegxr.js create mode 100755 node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js create mode 100755 node_modules/caniuse-lite/data/features/json.js create mode 100755 node_modules/caniuse-lite/data/features/justify-content-space-evenly.js create mode 100755 node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js create mode 100755 node_modules/caniuse-lite/data/features/keyboardevent-charcode.js create mode 100755 node_modules/caniuse-lite/data/features/keyboardevent-code.js create mode 100755 node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js create mode 100755 node_modules/caniuse-lite/data/features/keyboardevent-key.js create mode 100755 node_modules/caniuse-lite/data/features/keyboardevent-location.js create mode 100755 node_modules/caniuse-lite/data/features/keyboardevent-which.js create mode 100755 node_modules/caniuse-lite/data/features/lazyload.js create mode 100755 node_modules/caniuse-lite/data/features/let.js create mode 100755 node_modules/caniuse-lite/data/features/link-icon-png.js create mode 100755 node_modules/caniuse-lite/data/features/link-icon-svg.js create mode 100755 node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js create mode 100755 node_modules/caniuse-lite/data/features/link-rel-modulepreload.js create mode 100755 node_modules/caniuse-lite/data/features/link-rel-preconnect.js create mode 100755 node_modules/caniuse-lite/data/features/link-rel-prefetch.js create mode 100755 node_modules/caniuse-lite/data/features/link-rel-preload.js create mode 100755 node_modules/caniuse-lite/data/features/link-rel-prerender.js create mode 100755 node_modules/caniuse-lite/data/features/loading-lazy-attr.js create mode 100755 node_modules/caniuse-lite/data/features/localecompare.js create mode 100755 node_modules/caniuse-lite/data/features/magnetometer.js create mode 100755 node_modules/caniuse-lite/data/features/matchesselector.js create mode 100755 node_modules/caniuse-lite/data/features/matchmedia.js create mode 100755 node_modules/caniuse-lite/data/features/mathml.js create mode 100755 node_modules/caniuse-lite/data/features/maxlength.js create mode 100755 node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js create mode 100755 node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js create mode 100755 node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js create mode 100755 node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js create mode 100755 node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js create mode 100755 node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js create mode 100755 node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js create mode 100755 node_modules/caniuse-lite/data/features/media-fragments.js create mode 100755 node_modules/caniuse-lite/data/features/mediacapture-fromelement.js create mode 100755 node_modules/caniuse-lite/data/features/mediarecorder.js create mode 100755 node_modules/caniuse-lite/data/features/mediasource.js create mode 100755 node_modules/caniuse-lite/data/features/menu.js create mode 100755 node_modules/caniuse-lite/data/features/meta-theme-color.js create mode 100755 node_modules/caniuse-lite/data/features/meter.js create mode 100755 node_modules/caniuse-lite/data/features/midi.js create mode 100755 node_modules/caniuse-lite/data/features/minmaxwh.js create mode 100755 node_modules/caniuse-lite/data/features/mp3.js create mode 100755 node_modules/caniuse-lite/data/features/mpeg-dash.js create mode 100755 node_modules/caniuse-lite/data/features/mpeg4.js create mode 100755 node_modules/caniuse-lite/data/features/multibackgrounds.js create mode 100755 node_modules/caniuse-lite/data/features/multicolumn.js create mode 100755 node_modules/caniuse-lite/data/features/mutation-events.js create mode 100755 node_modules/caniuse-lite/data/features/mutationobserver.js create mode 100755 node_modules/caniuse-lite/data/features/namevalue-storage.js create mode 100755 node_modules/caniuse-lite/data/features/native-filesystem-api.js create mode 100755 node_modules/caniuse-lite/data/features/nav-timing.js create mode 100755 node_modules/caniuse-lite/data/features/netinfo.js create mode 100755 node_modules/caniuse-lite/data/features/notifications.js create mode 100755 node_modules/caniuse-lite/data/features/object-entries.js create mode 100755 node_modules/caniuse-lite/data/features/object-fit.js create mode 100755 node_modules/caniuse-lite/data/features/object-observe.js create mode 100755 node_modules/caniuse-lite/data/features/object-values.js create mode 100755 node_modules/caniuse-lite/data/features/objectrtc.js create mode 100755 node_modules/caniuse-lite/data/features/offline-apps.js create mode 100755 node_modules/caniuse-lite/data/features/offscreencanvas.js create mode 100755 node_modules/caniuse-lite/data/features/ogg-vorbis.js create mode 100755 node_modules/caniuse-lite/data/features/ogv.js create mode 100755 node_modules/caniuse-lite/data/features/ol-reversed.js create mode 100755 node_modules/caniuse-lite/data/features/once-event-listener.js create mode 100755 node_modules/caniuse-lite/data/features/online-status.js create mode 100755 node_modules/caniuse-lite/data/features/opus.js create mode 100755 node_modules/caniuse-lite/data/features/orientation-sensor.js create mode 100755 node_modules/caniuse-lite/data/features/outline.js create mode 100755 node_modules/caniuse-lite/data/features/pad-start-end.js create mode 100755 node_modules/caniuse-lite/data/features/page-transition-events.js create mode 100755 node_modules/caniuse-lite/data/features/pagevisibility.js create mode 100755 node_modules/caniuse-lite/data/features/passive-event-listener.js create mode 100755 node_modules/caniuse-lite/data/features/passwordrules.js create mode 100755 node_modules/caniuse-lite/data/features/path2d.js create mode 100755 node_modules/caniuse-lite/data/features/payment-request.js create mode 100755 node_modules/caniuse-lite/data/features/pdf-viewer.js create mode 100755 node_modules/caniuse-lite/data/features/permissions-api.js create mode 100755 node_modules/caniuse-lite/data/features/permissions-policy.js create mode 100755 node_modules/caniuse-lite/data/features/picture-in-picture.js create mode 100755 node_modules/caniuse-lite/data/features/picture.js create mode 100755 node_modules/caniuse-lite/data/features/ping.js create mode 100755 node_modules/caniuse-lite/data/features/png-alpha.js create mode 100755 node_modules/caniuse-lite/data/features/pointer-events.js create mode 100755 node_modules/caniuse-lite/data/features/pointer.js create mode 100755 node_modules/caniuse-lite/data/features/pointerlock.js create mode 100755 node_modules/caniuse-lite/data/features/portals.js create mode 100755 node_modules/caniuse-lite/data/features/prefers-color-scheme.js create mode 100755 node_modules/caniuse-lite/data/features/prefers-reduced-motion.js create mode 100755 node_modules/caniuse-lite/data/features/progress.js create mode 100755 node_modules/caniuse-lite/data/features/promise-finally.js create mode 100755 node_modules/caniuse-lite/data/features/promises.js create mode 100755 node_modules/caniuse-lite/data/features/proximity.js create mode 100755 node_modules/caniuse-lite/data/features/proxy.js create mode 100755 node_modules/caniuse-lite/data/features/publickeypinning.js create mode 100755 node_modules/caniuse-lite/data/features/push-api.js create mode 100755 node_modules/caniuse-lite/data/features/queryselector.js create mode 100755 node_modules/caniuse-lite/data/features/readonly-attr.js create mode 100755 node_modules/caniuse-lite/data/features/referrer-policy.js create mode 100755 node_modules/caniuse-lite/data/features/registerprotocolhandler.js create mode 100755 node_modules/caniuse-lite/data/features/rel-noopener.js create mode 100755 node_modules/caniuse-lite/data/features/rel-noreferrer.js create mode 100755 node_modules/caniuse-lite/data/features/rellist.js create mode 100755 node_modules/caniuse-lite/data/features/rem.js create mode 100755 node_modules/caniuse-lite/data/features/requestanimationframe.js create mode 100755 node_modules/caniuse-lite/data/features/requestidlecallback.js create mode 100755 node_modules/caniuse-lite/data/features/resizeobserver.js create mode 100755 node_modules/caniuse-lite/data/features/resource-timing.js create mode 100755 node_modules/caniuse-lite/data/features/rest-parameters.js create mode 100755 node_modules/caniuse-lite/data/features/rtcpeerconnection.js create mode 100755 node_modules/caniuse-lite/data/features/ruby.js create mode 100755 node_modules/caniuse-lite/data/features/run-in.js create mode 100755 node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js create mode 100755 node_modules/caniuse-lite/data/features/screen-orientation.js create mode 100755 node_modules/caniuse-lite/data/features/script-async.js create mode 100755 node_modules/caniuse-lite/data/features/script-defer.js create mode 100755 node_modules/caniuse-lite/data/features/scrollintoview.js create mode 100755 node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js create mode 100755 node_modules/caniuse-lite/data/features/sdch.js create mode 100755 node_modules/caniuse-lite/data/features/selection-api.js create mode 100755 node_modules/caniuse-lite/data/features/server-timing.js create mode 100755 node_modules/caniuse-lite/data/features/serviceworkers.js create mode 100755 node_modules/caniuse-lite/data/features/setimmediate.js create mode 100755 node_modules/caniuse-lite/data/features/shadowdom.js create mode 100755 node_modules/caniuse-lite/data/features/shadowdomv1.js create mode 100755 node_modules/caniuse-lite/data/features/sharedarraybuffer.js create mode 100755 node_modules/caniuse-lite/data/features/sharedworkers.js create mode 100755 node_modules/caniuse-lite/data/features/sni.js create mode 100755 node_modules/caniuse-lite/data/features/spdy.js create mode 100755 node_modules/caniuse-lite/data/features/speech-recognition.js create mode 100755 node_modules/caniuse-lite/data/features/speech-synthesis.js create mode 100755 node_modules/caniuse-lite/data/features/spellcheck-attribute.js create mode 100755 node_modules/caniuse-lite/data/features/sql-storage.js create mode 100755 node_modules/caniuse-lite/data/features/srcset.js create mode 100755 node_modules/caniuse-lite/data/features/stream.js create mode 100755 node_modules/caniuse-lite/data/features/streams.js create mode 100755 node_modules/caniuse-lite/data/features/stricttransportsecurity.js create mode 100755 node_modules/caniuse-lite/data/features/style-scoped.js create mode 100755 node_modules/caniuse-lite/data/features/subresource-bundling.js create mode 100755 node_modules/caniuse-lite/data/features/subresource-integrity.js create mode 100755 node_modules/caniuse-lite/data/features/svg-css.js create mode 100755 node_modules/caniuse-lite/data/features/svg-filters.js create mode 100755 node_modules/caniuse-lite/data/features/svg-fonts.js create mode 100755 node_modules/caniuse-lite/data/features/svg-fragment.js create mode 100755 node_modules/caniuse-lite/data/features/svg-html.js create mode 100755 node_modules/caniuse-lite/data/features/svg-html5.js create mode 100755 node_modules/caniuse-lite/data/features/svg-img.js create mode 100755 node_modules/caniuse-lite/data/features/svg-smil.js create mode 100755 node_modules/caniuse-lite/data/features/svg.js create mode 100755 node_modules/caniuse-lite/data/features/sxg.js create mode 100755 node_modules/caniuse-lite/data/features/tabindex-attr.js create mode 100755 node_modules/caniuse-lite/data/features/template-literals.js create mode 100755 node_modules/caniuse-lite/data/features/template.js create mode 100755 node_modules/caniuse-lite/data/features/temporal.js create mode 100755 node_modules/caniuse-lite/data/features/testfeat.js create mode 100755 node_modules/caniuse-lite/data/features/text-decoration.js create mode 100755 node_modules/caniuse-lite/data/features/text-emphasis.js create mode 100755 node_modules/caniuse-lite/data/features/text-overflow.js create mode 100755 node_modules/caniuse-lite/data/features/text-size-adjust.js create mode 100755 node_modules/caniuse-lite/data/features/text-stroke.js create mode 100755 node_modules/caniuse-lite/data/features/textcontent.js create mode 100755 node_modules/caniuse-lite/data/features/textencoder.js create mode 100755 node_modules/caniuse-lite/data/features/tls1-1.js create mode 100755 node_modules/caniuse-lite/data/features/tls1-2.js create mode 100755 node_modules/caniuse-lite/data/features/tls1-3.js create mode 100755 node_modules/caniuse-lite/data/features/touch.js create mode 100755 node_modules/caniuse-lite/data/features/transforms2d.js create mode 100755 node_modules/caniuse-lite/data/features/transforms3d.js create mode 100755 node_modules/caniuse-lite/data/features/trusted-types.js create mode 100755 node_modules/caniuse-lite/data/features/ttf.js create mode 100755 node_modules/caniuse-lite/data/features/typedarrays.js create mode 100755 node_modules/caniuse-lite/data/features/u2f.js create mode 100755 node_modules/caniuse-lite/data/features/unhandledrejection.js create mode 100755 node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js create mode 100755 node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js create mode 100755 node_modules/caniuse-lite/data/features/url.js create mode 100755 node_modules/caniuse-lite/data/features/urlsearchparams.js create mode 100755 node_modules/caniuse-lite/data/features/use-strict.js create mode 100755 node_modules/caniuse-lite/data/features/user-select-none.js create mode 100755 node_modules/caniuse-lite/data/features/user-timing.js create mode 100755 node_modules/caniuse-lite/data/features/variable-fonts.js create mode 100755 node_modules/caniuse-lite/data/features/vector-effect.js create mode 100755 node_modules/caniuse-lite/data/features/vibration.js create mode 100755 node_modules/caniuse-lite/data/features/video.js create mode 100755 node_modules/caniuse-lite/data/features/videotracks.js create mode 100755 node_modules/caniuse-lite/data/features/viewport-unit-variants.js create mode 100755 node_modules/caniuse-lite/data/features/viewport-units.js create mode 100755 node_modules/caniuse-lite/data/features/wai-aria.js create mode 100755 node_modules/caniuse-lite/data/features/wake-lock.js create mode 100755 node_modules/caniuse-lite/data/features/wasm.js create mode 100755 node_modules/caniuse-lite/data/features/wav.js create mode 100755 node_modules/caniuse-lite/data/features/wbr-element.js create mode 100755 node_modules/caniuse-lite/data/features/web-animation.js create mode 100755 node_modules/caniuse-lite/data/features/web-app-manifest.js create mode 100755 node_modules/caniuse-lite/data/features/web-bluetooth.js create mode 100755 node_modules/caniuse-lite/data/features/web-serial.js create mode 100755 node_modules/caniuse-lite/data/features/web-share.js create mode 100755 node_modules/caniuse-lite/data/features/webauthn.js create mode 100755 node_modules/caniuse-lite/data/features/webcodecs.js create mode 100755 node_modules/caniuse-lite/data/features/webgl.js create mode 100755 node_modules/caniuse-lite/data/features/webgl2.js create mode 100755 node_modules/caniuse-lite/data/features/webgpu.js create mode 100755 node_modules/caniuse-lite/data/features/webhid.js create mode 100755 node_modules/caniuse-lite/data/features/webkit-user-drag.js create mode 100755 node_modules/caniuse-lite/data/features/webm.js create mode 100755 node_modules/caniuse-lite/data/features/webnfc.js create mode 100755 node_modules/caniuse-lite/data/features/webp.js create mode 100755 node_modules/caniuse-lite/data/features/websockets.js create mode 100755 node_modules/caniuse-lite/data/features/webtransport.js create mode 100755 node_modules/caniuse-lite/data/features/webusb.js create mode 100755 node_modules/caniuse-lite/data/features/webvr.js create mode 100755 node_modules/caniuse-lite/data/features/webvtt.js create mode 100755 node_modules/caniuse-lite/data/features/webworkers.js create mode 100755 node_modules/caniuse-lite/data/features/webxr.js create mode 100755 node_modules/caniuse-lite/data/features/will-change.js create mode 100755 node_modules/caniuse-lite/data/features/woff.js create mode 100755 node_modules/caniuse-lite/data/features/woff2.js create mode 100755 node_modules/caniuse-lite/data/features/word-break.js create mode 100755 node_modules/caniuse-lite/data/features/wordwrap.js create mode 100755 node_modules/caniuse-lite/data/features/x-doc-messaging.js create mode 100755 node_modules/caniuse-lite/data/features/x-frame-options.js create mode 100755 node_modules/caniuse-lite/data/features/xhr2.js create mode 100755 node_modules/caniuse-lite/data/features/xhtml.js create mode 100755 node_modules/caniuse-lite/data/features/xhtmlsmil.js create mode 100755 node_modules/caniuse-lite/data/features/xml-serializer.js create mode 100755 node_modules/caniuse-lite/data/regions/AD.js create mode 100755 node_modules/caniuse-lite/data/regions/AE.js create mode 100755 node_modules/caniuse-lite/data/regions/AF.js create mode 100755 node_modules/caniuse-lite/data/regions/AG.js create mode 100755 node_modules/caniuse-lite/data/regions/AI.js create mode 100755 node_modules/caniuse-lite/data/regions/AL.js create mode 100755 node_modules/caniuse-lite/data/regions/AM.js create mode 100755 node_modules/caniuse-lite/data/regions/AO.js create mode 100755 node_modules/caniuse-lite/data/regions/AR.js create mode 100755 node_modules/caniuse-lite/data/regions/AS.js create mode 100755 node_modules/caniuse-lite/data/regions/AT.js create mode 100755 node_modules/caniuse-lite/data/regions/AU.js create mode 100755 node_modules/caniuse-lite/data/regions/AW.js create mode 100755 node_modules/caniuse-lite/data/regions/AX.js create mode 100755 node_modules/caniuse-lite/data/regions/AZ.js create mode 100755 node_modules/caniuse-lite/data/regions/BA.js create mode 100755 node_modules/caniuse-lite/data/regions/BB.js create mode 100755 node_modules/caniuse-lite/data/regions/BD.js create mode 100755 node_modules/caniuse-lite/data/regions/BE.js create mode 100755 node_modules/caniuse-lite/data/regions/BF.js create mode 100755 node_modules/caniuse-lite/data/regions/BG.js create mode 100755 node_modules/caniuse-lite/data/regions/BH.js create mode 100755 node_modules/caniuse-lite/data/regions/BI.js create mode 100755 node_modules/caniuse-lite/data/regions/BJ.js create mode 100755 node_modules/caniuse-lite/data/regions/BM.js create mode 100755 node_modules/caniuse-lite/data/regions/BN.js create mode 100755 node_modules/caniuse-lite/data/regions/BO.js create mode 100755 node_modules/caniuse-lite/data/regions/BR.js create mode 100755 node_modules/caniuse-lite/data/regions/BS.js create mode 100755 node_modules/caniuse-lite/data/regions/BT.js create mode 100755 node_modules/caniuse-lite/data/regions/BW.js create mode 100755 node_modules/caniuse-lite/data/regions/BY.js create mode 100755 node_modules/caniuse-lite/data/regions/BZ.js create mode 100755 node_modules/caniuse-lite/data/regions/CA.js create mode 100755 node_modules/caniuse-lite/data/regions/CD.js create mode 100755 node_modules/caniuse-lite/data/regions/CF.js create mode 100755 node_modules/caniuse-lite/data/regions/CG.js create mode 100755 node_modules/caniuse-lite/data/regions/CH.js create mode 100755 node_modules/caniuse-lite/data/regions/CI.js create mode 100755 node_modules/caniuse-lite/data/regions/CK.js create mode 100755 node_modules/caniuse-lite/data/regions/CL.js create mode 100755 node_modules/caniuse-lite/data/regions/CM.js create mode 100755 node_modules/caniuse-lite/data/regions/CN.js create mode 100755 node_modules/caniuse-lite/data/regions/CO.js create mode 100755 node_modules/caniuse-lite/data/regions/CR.js create mode 100755 node_modules/caniuse-lite/data/regions/CU.js create mode 100755 node_modules/caniuse-lite/data/regions/CV.js create mode 100755 node_modules/caniuse-lite/data/regions/CX.js create mode 100755 node_modules/caniuse-lite/data/regions/CY.js create mode 100755 node_modules/caniuse-lite/data/regions/CZ.js create mode 100755 node_modules/caniuse-lite/data/regions/DE.js create mode 100755 node_modules/caniuse-lite/data/regions/DJ.js create mode 100755 node_modules/caniuse-lite/data/regions/DK.js create mode 100755 node_modules/caniuse-lite/data/regions/DM.js create mode 100755 node_modules/caniuse-lite/data/regions/DO.js create mode 100755 node_modules/caniuse-lite/data/regions/DZ.js create mode 100755 node_modules/caniuse-lite/data/regions/EC.js create mode 100755 node_modules/caniuse-lite/data/regions/EE.js create mode 100755 node_modules/caniuse-lite/data/regions/EG.js create mode 100755 node_modules/caniuse-lite/data/regions/ER.js create mode 100755 node_modules/caniuse-lite/data/regions/ES.js create mode 100755 node_modules/caniuse-lite/data/regions/ET.js create mode 100755 node_modules/caniuse-lite/data/regions/FI.js create mode 100755 node_modules/caniuse-lite/data/regions/FJ.js create mode 100755 node_modules/caniuse-lite/data/regions/FK.js create mode 100755 node_modules/caniuse-lite/data/regions/FM.js create mode 100755 node_modules/caniuse-lite/data/regions/FO.js create mode 100755 node_modules/caniuse-lite/data/regions/FR.js create mode 100755 node_modules/caniuse-lite/data/regions/GA.js create mode 100755 node_modules/caniuse-lite/data/regions/GB.js create mode 100755 node_modules/caniuse-lite/data/regions/GD.js create mode 100755 node_modules/caniuse-lite/data/regions/GE.js create mode 100755 node_modules/caniuse-lite/data/regions/GF.js create mode 100755 node_modules/caniuse-lite/data/regions/GG.js create mode 100755 node_modules/caniuse-lite/data/regions/GH.js create mode 100755 node_modules/caniuse-lite/data/regions/GI.js create mode 100755 node_modules/caniuse-lite/data/regions/GL.js create mode 100755 node_modules/caniuse-lite/data/regions/GM.js create mode 100755 node_modules/caniuse-lite/data/regions/GN.js create mode 100755 node_modules/caniuse-lite/data/regions/GP.js create mode 100755 node_modules/caniuse-lite/data/regions/GQ.js create mode 100755 node_modules/caniuse-lite/data/regions/GR.js create mode 100755 node_modules/caniuse-lite/data/regions/GT.js create mode 100755 node_modules/caniuse-lite/data/regions/GU.js create mode 100755 node_modules/caniuse-lite/data/regions/GW.js create mode 100755 node_modules/caniuse-lite/data/regions/GY.js create mode 100755 node_modules/caniuse-lite/data/regions/HK.js create mode 100755 node_modules/caniuse-lite/data/regions/HN.js create mode 100755 node_modules/caniuse-lite/data/regions/HR.js create mode 100755 node_modules/caniuse-lite/data/regions/HT.js create mode 100755 node_modules/caniuse-lite/data/regions/HU.js create mode 100755 node_modules/caniuse-lite/data/regions/ID.js create mode 100755 node_modules/caniuse-lite/data/regions/IE.js create mode 100755 node_modules/caniuse-lite/data/regions/IL.js create mode 100755 node_modules/caniuse-lite/data/regions/IM.js create mode 100755 node_modules/caniuse-lite/data/regions/IN.js create mode 100755 node_modules/caniuse-lite/data/regions/IQ.js create mode 100755 node_modules/caniuse-lite/data/regions/IR.js create mode 100755 node_modules/caniuse-lite/data/regions/IS.js create mode 100755 node_modules/caniuse-lite/data/regions/IT.js create mode 100755 node_modules/caniuse-lite/data/regions/JE.js create mode 100755 node_modules/caniuse-lite/data/regions/JM.js create mode 100755 node_modules/caniuse-lite/data/regions/JO.js create mode 100755 node_modules/caniuse-lite/data/regions/JP.js create mode 100755 node_modules/caniuse-lite/data/regions/KE.js create mode 100755 node_modules/caniuse-lite/data/regions/KG.js create mode 100755 node_modules/caniuse-lite/data/regions/KH.js create mode 100755 node_modules/caniuse-lite/data/regions/KI.js create mode 100755 node_modules/caniuse-lite/data/regions/KM.js create mode 100755 node_modules/caniuse-lite/data/regions/KN.js create mode 100755 node_modules/caniuse-lite/data/regions/KP.js create mode 100755 node_modules/caniuse-lite/data/regions/KR.js create mode 100755 node_modules/caniuse-lite/data/regions/KW.js create mode 100755 node_modules/caniuse-lite/data/regions/KY.js create mode 100755 node_modules/caniuse-lite/data/regions/KZ.js create mode 100755 node_modules/caniuse-lite/data/regions/LA.js create mode 100755 node_modules/caniuse-lite/data/regions/LB.js create mode 100755 node_modules/caniuse-lite/data/regions/LC.js create mode 100755 node_modules/caniuse-lite/data/regions/LI.js create mode 100755 node_modules/caniuse-lite/data/regions/LK.js create mode 100755 node_modules/caniuse-lite/data/regions/LR.js create mode 100755 node_modules/caniuse-lite/data/regions/LS.js create mode 100755 node_modules/caniuse-lite/data/regions/LT.js create mode 100755 node_modules/caniuse-lite/data/regions/LU.js create mode 100755 node_modules/caniuse-lite/data/regions/LV.js create mode 100755 node_modules/caniuse-lite/data/regions/LY.js create mode 100755 node_modules/caniuse-lite/data/regions/MA.js create mode 100755 node_modules/caniuse-lite/data/regions/MC.js create mode 100755 node_modules/caniuse-lite/data/regions/MD.js create mode 100755 node_modules/caniuse-lite/data/regions/ME.js create mode 100755 node_modules/caniuse-lite/data/regions/MG.js create mode 100755 node_modules/caniuse-lite/data/regions/MH.js create mode 100755 node_modules/caniuse-lite/data/regions/MK.js create mode 100755 node_modules/caniuse-lite/data/regions/ML.js create mode 100755 node_modules/caniuse-lite/data/regions/MM.js create mode 100755 node_modules/caniuse-lite/data/regions/MN.js create mode 100755 node_modules/caniuse-lite/data/regions/MO.js create mode 100755 node_modules/caniuse-lite/data/regions/MP.js create mode 100755 node_modules/caniuse-lite/data/regions/MQ.js create mode 100755 node_modules/caniuse-lite/data/regions/MR.js create mode 100755 node_modules/caniuse-lite/data/regions/MS.js create mode 100755 node_modules/caniuse-lite/data/regions/MT.js create mode 100755 node_modules/caniuse-lite/data/regions/MU.js create mode 100755 node_modules/caniuse-lite/data/regions/MV.js create mode 100755 node_modules/caniuse-lite/data/regions/MW.js create mode 100755 node_modules/caniuse-lite/data/regions/MX.js create mode 100755 node_modules/caniuse-lite/data/regions/MY.js create mode 100755 node_modules/caniuse-lite/data/regions/MZ.js create mode 100755 node_modules/caniuse-lite/data/regions/NA.js create mode 100755 node_modules/caniuse-lite/data/regions/NC.js create mode 100755 node_modules/caniuse-lite/data/regions/NE.js create mode 100755 node_modules/caniuse-lite/data/regions/NF.js create mode 100755 node_modules/caniuse-lite/data/regions/NG.js create mode 100755 node_modules/caniuse-lite/data/regions/NI.js create mode 100755 node_modules/caniuse-lite/data/regions/NL.js create mode 100755 node_modules/caniuse-lite/data/regions/NO.js create mode 100755 node_modules/caniuse-lite/data/regions/NP.js create mode 100755 node_modules/caniuse-lite/data/regions/NR.js create mode 100755 node_modules/caniuse-lite/data/regions/NU.js create mode 100755 node_modules/caniuse-lite/data/regions/NZ.js create mode 100755 node_modules/caniuse-lite/data/regions/OM.js create mode 100755 node_modules/caniuse-lite/data/regions/PA.js create mode 100755 node_modules/caniuse-lite/data/regions/PE.js create mode 100755 node_modules/caniuse-lite/data/regions/PF.js create mode 100755 node_modules/caniuse-lite/data/regions/PG.js create mode 100755 node_modules/caniuse-lite/data/regions/PH.js create mode 100755 node_modules/caniuse-lite/data/regions/PK.js create mode 100755 node_modules/caniuse-lite/data/regions/PL.js create mode 100755 node_modules/caniuse-lite/data/regions/PM.js create mode 100755 node_modules/caniuse-lite/data/regions/PN.js create mode 100755 node_modules/caniuse-lite/data/regions/PR.js create mode 100755 node_modules/caniuse-lite/data/regions/PS.js create mode 100755 node_modules/caniuse-lite/data/regions/PT.js create mode 100755 node_modules/caniuse-lite/data/regions/PW.js create mode 100755 node_modules/caniuse-lite/data/regions/PY.js create mode 100755 node_modules/caniuse-lite/data/regions/QA.js create mode 100755 node_modules/caniuse-lite/data/regions/RE.js create mode 100755 node_modules/caniuse-lite/data/regions/RO.js create mode 100755 node_modules/caniuse-lite/data/regions/RS.js create mode 100755 node_modules/caniuse-lite/data/regions/RU.js create mode 100755 node_modules/caniuse-lite/data/regions/RW.js create mode 100755 node_modules/caniuse-lite/data/regions/SA.js create mode 100755 node_modules/caniuse-lite/data/regions/SB.js create mode 100755 node_modules/caniuse-lite/data/regions/SC.js create mode 100755 node_modules/caniuse-lite/data/regions/SD.js create mode 100755 node_modules/caniuse-lite/data/regions/SE.js create mode 100755 node_modules/caniuse-lite/data/regions/SG.js create mode 100755 node_modules/caniuse-lite/data/regions/SH.js create mode 100755 node_modules/caniuse-lite/data/regions/SI.js create mode 100755 node_modules/caniuse-lite/data/regions/SK.js create mode 100755 node_modules/caniuse-lite/data/regions/SL.js create mode 100755 node_modules/caniuse-lite/data/regions/SM.js create mode 100755 node_modules/caniuse-lite/data/regions/SN.js create mode 100755 node_modules/caniuse-lite/data/regions/SO.js create mode 100755 node_modules/caniuse-lite/data/regions/SR.js create mode 100755 node_modules/caniuse-lite/data/regions/ST.js create mode 100755 node_modules/caniuse-lite/data/regions/SV.js create mode 100755 node_modules/caniuse-lite/data/regions/SY.js create mode 100755 node_modules/caniuse-lite/data/regions/SZ.js create mode 100755 node_modules/caniuse-lite/data/regions/TC.js create mode 100755 node_modules/caniuse-lite/data/regions/TD.js create mode 100755 node_modules/caniuse-lite/data/regions/TG.js create mode 100755 node_modules/caniuse-lite/data/regions/TH.js create mode 100755 node_modules/caniuse-lite/data/regions/TJ.js create mode 100755 node_modules/caniuse-lite/data/regions/TK.js create mode 100755 node_modules/caniuse-lite/data/regions/TL.js create mode 100755 node_modules/caniuse-lite/data/regions/TM.js create mode 100755 node_modules/caniuse-lite/data/regions/TN.js create mode 100755 node_modules/caniuse-lite/data/regions/TO.js create mode 100755 node_modules/caniuse-lite/data/regions/TR.js create mode 100755 node_modules/caniuse-lite/data/regions/TT.js create mode 100755 node_modules/caniuse-lite/data/regions/TV.js create mode 100755 node_modules/caniuse-lite/data/regions/TW.js create mode 100755 node_modules/caniuse-lite/data/regions/TZ.js create mode 100755 node_modules/caniuse-lite/data/regions/UA.js create mode 100755 node_modules/caniuse-lite/data/regions/UG.js create mode 100755 node_modules/caniuse-lite/data/regions/US.js create mode 100755 node_modules/caniuse-lite/data/regions/UY.js create mode 100755 node_modules/caniuse-lite/data/regions/UZ.js create mode 100755 node_modules/caniuse-lite/data/regions/VA.js create mode 100755 node_modules/caniuse-lite/data/regions/VC.js create mode 100755 node_modules/caniuse-lite/data/regions/VE.js create mode 100755 node_modules/caniuse-lite/data/regions/VG.js create mode 100755 node_modules/caniuse-lite/data/regions/VI.js create mode 100755 node_modules/caniuse-lite/data/regions/VN.js create mode 100755 node_modules/caniuse-lite/data/regions/VU.js create mode 100755 node_modules/caniuse-lite/data/regions/WF.js create mode 100755 node_modules/caniuse-lite/data/regions/WS.js create mode 100755 node_modules/caniuse-lite/data/regions/YE.js create mode 100755 node_modules/caniuse-lite/data/regions/YT.js create mode 100755 node_modules/caniuse-lite/data/regions/ZA.js create mode 100755 node_modules/caniuse-lite/data/regions/ZM.js create mode 100755 node_modules/caniuse-lite/data/regions/ZW.js create mode 100755 node_modules/caniuse-lite/data/regions/alt-af.js create mode 100755 node_modules/caniuse-lite/data/regions/alt-an.js create mode 100755 node_modules/caniuse-lite/data/regions/alt-as.js create mode 100755 node_modules/caniuse-lite/data/regions/alt-eu.js create mode 100755 node_modules/caniuse-lite/data/regions/alt-na.js create mode 100755 node_modules/caniuse-lite/data/regions/alt-oc.js create mode 100755 node_modules/caniuse-lite/data/regions/alt-sa.js create mode 100755 node_modules/caniuse-lite/data/regions/alt-ww.js create mode 100755 node_modules/caniuse-lite/dist/lib/statuses.js create mode 100755 node_modules/caniuse-lite/dist/lib/supported.js create mode 100755 node_modules/caniuse-lite/dist/unpacker/agents.js create mode 100755 node_modules/caniuse-lite/dist/unpacker/browserVersions.js create mode 100755 node_modules/caniuse-lite/dist/unpacker/browsers.js create mode 100755 node_modules/caniuse-lite/dist/unpacker/feature.js create mode 100755 node_modules/caniuse-lite/dist/unpacker/features.js create mode 100755 node_modules/caniuse-lite/dist/unpacker/index.js create mode 100755 node_modules/caniuse-lite/dist/unpacker/region.js create mode 100755 node_modules/caniuse-lite/package.json create mode 100755 node_modules/chalk/index.d.ts create mode 100755 node_modules/chalk/license create mode 100755 node_modules/chalk/package.json create mode 100755 node_modules/chalk/readme.md create mode 100755 node_modules/chalk/source/index.js create mode 100755 node_modules/chalk/source/templates.js create mode 100755 node_modules/chalk/source/util.js create mode 100755 node_modules/char-regex/LICENSE create mode 100755 node_modules/char-regex/README.md create mode 100755 node_modules/char-regex/index.d.ts create mode 100755 node_modules/char-regex/index.js create mode 100755 node_modules/char-regex/package.json create mode 100755 node_modules/ci-info/CHANGELOG.md create mode 100755 node_modules/ci-info/LICENSE create mode 100755 node_modules/ci-info/README.md create mode 100755 node_modules/ci-info/index.d.ts create mode 100755 node_modules/ci-info/index.js create mode 100755 node_modules/ci-info/package.json create mode 100755 node_modules/ci-info/vendors.json create mode 100755 node_modules/cjs-module-lexer/CHANGELOG.md create mode 100755 node_modules/cjs-module-lexer/LICENSE create mode 100755 node_modules/cjs-module-lexer/README.md create mode 100755 node_modules/cjs-module-lexer/dist/lexer.js create mode 100755 node_modules/cjs-module-lexer/dist/lexer.mjs create mode 100755 node_modules/cjs-module-lexer/lexer.d.ts create mode 100755 node_modules/cjs-module-lexer/lexer.js create mode 100755 node_modules/cjs-module-lexer/package.json create mode 100755 node_modules/cliui/CHANGELOG.md create mode 100755 node_modules/cliui/LICENSE.txt create mode 100755 node_modules/cliui/README.md create mode 100755 node_modules/cliui/build/index.cjs create mode 100755 node_modules/cliui/build/index.d.cts create mode 100755 node_modules/cliui/build/lib/index.js create mode 100755 node_modules/cliui/build/lib/string-utils.js create mode 100755 node_modules/cliui/index.mjs create mode 100755 node_modules/cliui/package.json create mode 100755 node_modules/co/History.md create mode 100755 node_modules/co/LICENSE create mode 100755 node_modules/co/Readme.md create mode 100755 node_modules/co/index.js create mode 100755 node_modules/co/package.json create mode 100755 node_modules/collect-v8-coverage/CHANGELOG.md create mode 100755 node_modules/collect-v8-coverage/LICENSE create mode 100755 node_modules/collect-v8-coverage/README.md create mode 100755 node_modules/collect-v8-coverage/index.d.ts create mode 100755 node_modules/collect-v8-coverage/index.js create mode 100755 node_modules/collect-v8-coverage/package.json create mode 100755 node_modules/color-convert/CHANGELOG.md create mode 100755 node_modules/color-convert/LICENSE create mode 100755 node_modules/color-convert/README.md create mode 100755 node_modules/color-convert/conversions.js create mode 100755 node_modules/color-convert/index.js create mode 100755 node_modules/color-convert/package.json create mode 100755 node_modules/color-convert/route.js create mode 100755 node_modules/color-name/LICENSE create mode 100755 node_modules/color-name/README.md create mode 100755 node_modules/color-name/index.js create mode 100755 node_modules/color-name/package.json mode change 100644 => 100755 node_modules/combined-stream/License mode change 100644 => 100755 node_modules/combined-stream/Readme.md mode change 100644 => 100755 node_modules/combined-stream/lib/combined_stream.js mode change 100644 => 100755 node_modules/combined-stream/package.json mode change 100644 => 100755 node_modules/combined-stream/yarn.lock create mode 100755 node_modules/concat-map/.travis.yml create mode 100755 node_modules/concat-map/LICENSE create mode 100755 node_modules/concat-map/README.markdown create mode 100755 node_modules/concat-map/example/map.js create mode 100755 node_modules/concat-map/index.js create mode 100755 node_modules/concat-map/package.json create mode 100755 node_modules/concat-map/test/map.js mode change 100644 => 100755 node_modules/content-disposition/HISTORY.md mode change 100644 => 100755 node_modules/content-disposition/LICENSE mode change 100644 => 100755 node_modules/content-disposition/README.md mode change 100644 => 100755 node_modules/content-disposition/index.js mode change 100644 => 100755 node_modules/content-disposition/package.json mode change 100644 => 100755 node_modules/content-type/HISTORY.md mode change 100644 => 100755 node_modules/content-type/LICENSE mode change 100644 => 100755 node_modules/content-type/README.md mode change 100644 => 100755 node_modules/content-type/index.js mode change 100644 => 100755 node_modules/content-type/package.json create mode 100755 node_modules/convert-source-map/LICENSE create mode 100755 node_modules/convert-source-map/README.md create mode 100755 node_modules/convert-source-map/index.js create mode 100755 node_modules/convert-source-map/package.json mode change 100644 => 100755 node_modules/cookie-signature/.npmignore mode change 100644 => 100755 node_modules/cookie-signature/History.md mode change 100644 => 100755 node_modules/cookie-signature/Readme.md mode change 100644 => 100755 node_modules/cookie-signature/index.js mode change 100644 => 100755 node_modules/cookie-signature/package.json mode change 100644 => 100755 node_modules/cookie/HISTORY.md mode change 100644 => 100755 node_modules/cookie/LICENSE mode change 100644 => 100755 node_modules/cookie/README.md mode change 100644 => 100755 node_modules/cookie/SECURITY.md mode change 100644 => 100755 node_modules/cookie/index.js mode change 100644 => 100755 node_modules/cookie/package.json create mode 100755 node_modules/cross-spawn/CHANGELOG.md create mode 100755 node_modules/cross-spawn/LICENSE create mode 100755 node_modules/cross-spawn/README.md create mode 100755 node_modules/cross-spawn/index.js create mode 100755 node_modules/cross-spawn/lib/enoent.js create mode 100755 node_modules/cross-spawn/lib/parse.js create mode 100755 node_modules/cross-spawn/lib/util/escape.js create mode 100755 node_modules/cross-spawn/lib/util/readShebang.js create mode 100755 node_modules/cross-spawn/lib/util/resolveCommand.js create mode 100755 node_modules/cross-spawn/package.json mode change 100644 => 100755 node_modules/cssom/LICENSE.txt mode change 100644 => 100755 node_modules/cssom/README.mdown mode change 100644 => 100755 node_modules/cssom/lib/CSSDocumentRule.js mode change 100644 => 100755 node_modules/cssom/lib/CSSFontFaceRule.js mode change 100644 => 100755 node_modules/cssom/lib/CSSHostRule.js mode change 100644 => 100755 node_modules/cssom/lib/CSSImportRule.js mode change 100644 => 100755 node_modules/cssom/lib/CSSKeyframeRule.js mode change 100644 => 100755 node_modules/cssom/lib/CSSKeyframesRule.js mode change 100644 => 100755 node_modules/cssom/lib/CSSMediaRule.js mode change 100644 => 100755 node_modules/cssom/lib/CSSOM.js mode change 100644 => 100755 node_modules/cssom/lib/CSSRule.js mode change 100644 => 100755 node_modules/cssom/lib/CSSStyleDeclaration.js mode change 100644 => 100755 node_modules/cssom/lib/CSSStyleRule.js mode change 100644 => 100755 node_modules/cssom/lib/CSSStyleSheet.js mode change 100644 => 100755 node_modules/cssom/lib/CSSSupportsRule.js mode change 100644 => 100755 node_modules/cssom/lib/CSSValue.js mode change 100644 => 100755 node_modules/cssom/lib/CSSValueExpression.js mode change 100644 => 100755 node_modules/cssom/lib/MatcherList.js mode change 100644 => 100755 node_modules/cssom/lib/MediaList.js mode change 100644 => 100755 node_modules/cssom/lib/StyleSheet.js mode change 100644 => 100755 node_modules/cssom/lib/clone.js mode change 100644 => 100755 node_modules/cssom/lib/index.js mode change 100644 => 100755 node_modules/cssom/lib/parse.js mode change 100644 => 100755 node_modules/cssom/package.json mode change 100644 => 100755 node_modules/cssstyle/LICENSE mode change 100644 => 100755 node_modules/cssstyle/README.md mode change 100644 => 100755 node_modules/cssstyle/lib/CSSStyleDeclaration.js mode change 100644 => 100755 node_modules/cssstyle/lib/CSSStyleDeclaration.test.js mode change 100644 => 100755 node_modules/cssstyle/lib/allExtraProperties.js mode change 100644 => 100755 node_modules/cssstyle/lib/allProperties.js mode change 100644 => 100755 node_modules/cssstyle/lib/allWebkitProperties.js mode change 100644 => 100755 node_modules/cssstyle/lib/constants.js mode change 100644 => 100755 node_modules/cssstyle/lib/implementedProperties.js mode change 100644 => 100755 node_modules/cssstyle/lib/named_colors.json mode change 100644 => 100755 node_modules/cssstyle/lib/parsers.js mode change 100644 => 100755 node_modules/cssstyle/lib/parsers.test.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/azimuth.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/background.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/backgroundAttachment.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/backgroundColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/backgroundImage.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/backgroundPosition.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/backgroundRepeat.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/border.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderBottom.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderBottomColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderBottomStyle.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderBottomWidth.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderCollapse.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderLeft.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderLeftColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderLeftStyle.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderLeftWidth.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderRight.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderRightColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderRightStyle.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderRightWidth.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderSpacing.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderStyle.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderTop.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderTopColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderTopStyle.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderTopWidth.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/borderWidth.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/bottom.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/clear.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/clip.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/color.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/cssFloat.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/flex.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/flexBasis.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/flexGrow.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/flexShrink.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/float.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/floodColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/font.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/fontFamily.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/fontSize.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/fontStyle.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/fontVariant.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/fontWeight.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/height.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/left.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/lightingColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/lineHeight.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/margin.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/marginBottom.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/marginLeft.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/marginRight.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/marginTop.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/opacity.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/outlineColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/padding.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/paddingBottom.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/paddingLeft.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/paddingRight.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/paddingTop.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/right.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/stopColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/textLineThroughColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/textOverlineColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/textUnderlineColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/top.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/webkitBorderEndColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/webkitBorderStartColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/webkitMatchNearestMailBlockquoteColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/webkitTextFillColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js mode change 100644 => 100755 node_modules/cssstyle/lib/properties/width.js mode change 100644 => 100755 node_modules/cssstyle/lib/utils/colorSpace.js mode change 100644 => 100755 node_modules/cssstyle/lib/utils/getBasicPropertyDescriptor.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/LICENSE.txt mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/README.mdown mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSDocumentRule.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSFontFaceRule.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSHostRule.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSImportRule.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSKeyframeRule.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSKeyframesRule.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSMediaRule.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSOM.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSRule.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSStyleDeclaration.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSStyleRule.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSStyleSheet.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSSupportsRule.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSValue.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/CSSValueExpression.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/MatcherList.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/MediaList.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/StyleSheet.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/clone.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/index.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/lib/parse.js mode change 100644 => 100755 node_modules/cssstyle/node_modules/cssom/package.json mode change 100644 => 100755 node_modules/cssstyle/package.json mode change 100644 => 100755 node_modules/data-urls/LICENSE.txt mode change 100644 => 100755 node_modules/data-urls/README.md mode change 100644 => 100755 node_modules/data-urls/lib/parser.js mode change 100644 => 100755 node_modules/data-urls/lib/utils.js mode change 100644 => 100755 node_modules/data-urls/package.json mode change 100644 => 100755 node_modules/debug/.coveralls.yml mode change 100644 => 100755 node_modules/debug/.eslintrc mode change 100644 => 100755 node_modules/debug/.npmignore mode change 100644 => 100755 node_modules/debug/.travis.yml mode change 100644 => 100755 node_modules/debug/CHANGELOG.md mode change 100644 => 100755 node_modules/debug/LICENSE mode change 100644 => 100755 node_modules/debug/Makefile mode change 100644 => 100755 node_modules/debug/README.md mode change 100644 => 100755 node_modules/debug/component.json mode change 100644 => 100755 node_modules/debug/karma.conf.js mode change 100644 => 100755 node_modules/debug/node.js mode change 100644 => 100755 node_modules/debug/package.json mode change 100644 => 100755 node_modules/debug/src/browser.js mode change 100644 => 100755 node_modules/debug/src/debug.js mode change 100644 => 100755 node_modules/debug/src/index.js mode change 100644 => 100755 node_modules/debug/src/inspector-log.js mode change 100644 => 100755 node_modules/debug/src/node.js mode change 100644 => 100755 node_modules/decimal.js/LICENCE.md mode change 100644 => 100755 node_modules/decimal.js/README.md mode change 100644 => 100755 node_modules/decimal.js/decimal.d.ts mode change 100644 => 100755 node_modules/decimal.js/decimal.js mode change 100644 => 100755 node_modules/decimal.js/decimal.mjs mode change 100644 => 100755 node_modules/decimal.js/package.json create mode 100755 node_modules/dedent/LICENSE create mode 100755 node_modules/dedent/README.md create mode 100755 node_modules/dedent/dist/dedent.js create mode 100755 node_modules/dedent/package.json mode change 100644 => 100755 node_modules/deep-is/.travis.yml mode change 100644 => 100755 node_modules/deep-is/LICENSE mode change 100644 => 100755 node_modules/deep-is/README.markdown mode change 100644 => 100755 node_modules/deep-is/example/cmp.js mode change 100644 => 100755 node_modules/deep-is/index.js mode change 100644 => 100755 node_modules/deep-is/package.json mode change 100644 => 100755 node_modules/deep-is/test/NaN.js mode change 100644 => 100755 node_modules/deep-is/test/cmp.js mode change 100644 => 100755 node_modules/deep-is/test/neg-vs-pos-0.js create mode 100755 node_modules/deepmerge/changelog.md create mode 100755 node_modules/deepmerge/dist/cjs.js create mode 100755 node_modules/deepmerge/dist/umd.js create mode 100755 node_modules/deepmerge/index.d.ts create mode 100755 node_modules/deepmerge/index.js create mode 100755 node_modules/deepmerge/license.txt create mode 100755 node_modules/deepmerge/package.json create mode 100755 node_modules/deepmerge/readme.md create mode 100755 node_modules/deepmerge/rollup.config.js mode change 100644 => 100755 node_modules/delayed-stream/.npmignore mode change 100644 => 100755 node_modules/delayed-stream/License mode change 100644 => 100755 node_modules/delayed-stream/Makefile mode change 100644 => 100755 node_modules/delayed-stream/Readme.md mode change 100644 => 100755 node_modules/delayed-stream/lib/delayed_stream.js mode change 100644 => 100755 node_modules/delayed-stream/package.json mode change 100644 => 100755 node_modules/depd/History.md mode change 100644 => 100755 node_modules/depd/LICENSE mode change 100644 => 100755 node_modules/depd/Readme.md mode change 100644 => 100755 node_modules/depd/index.js mode change 100644 => 100755 node_modules/depd/lib/browser/index.js mode change 100644 => 100755 node_modules/depd/package.json mode change 100644 => 100755 node_modules/destroy/LICENSE mode change 100644 => 100755 node_modules/destroy/README.md mode change 100644 => 100755 node_modules/destroy/index.js mode change 100644 => 100755 node_modules/destroy/package.json create mode 100755 node_modules/detect-newline/index.d.ts create mode 100755 node_modules/detect-newline/index.js create mode 100755 node_modules/detect-newline/license create mode 100755 node_modules/detect-newline/package.json create mode 100755 node_modules/detect-newline/readme.md create mode 100755 node_modules/diff-sequences/LICENSE create mode 100755 node_modules/diff-sequences/README.md create mode 100755 node_modules/diff-sequences/build/index.d.ts create mode 100755 node_modules/diff-sequences/build/index.js create mode 100755 node_modules/diff-sequences/package.json mode change 100644 => 100755 node_modules/domexception/LICENSE.txt mode change 100644 => 100755 node_modules/domexception/README.md mode change 100644 => 100755 node_modules/domexception/index.js mode change 100644 => 100755 node_modules/domexception/lib/DOMException-impl.js mode change 100644 => 100755 node_modules/domexception/lib/DOMException.js mode change 100644 => 100755 node_modules/domexception/lib/legacy-error-codes.json mode change 100644 => 100755 node_modules/domexception/lib/utils.js mode change 100644 => 100755 node_modules/domexception/node_modules/webidl-conversions/LICENSE.md mode change 100644 => 100755 node_modules/domexception/node_modules/webidl-conversions/README.md mode change 100644 => 100755 node_modules/domexception/node_modules/webidl-conversions/lib/index.js mode change 100644 => 100755 node_modules/domexception/node_modules/webidl-conversions/package.json mode change 100644 => 100755 node_modules/domexception/package.json mode change 100644 => 100755 node_modules/domexception/webidl2js-wrapper.js mode change 100644 => 100755 node_modules/domino/CHANGELOG.md mode change 100644 => 100755 node_modules/domino/LICENSE mode change 100644 => 100755 node_modules/domino/README.md mode change 100644 => 100755 node_modules/domino/lib/CSSStyleDeclaration.js mode change 100644 => 100755 node_modules/domino/lib/CharacterData.js mode change 100644 => 100755 node_modules/domino/lib/ChildNode.js mode change 100644 => 100755 node_modules/domino/lib/Comment.js mode change 100644 => 100755 node_modules/domino/lib/ContainerNode.js mode change 100644 => 100755 node_modules/domino/lib/CustomEvent.js mode change 100644 => 100755 node_modules/domino/lib/DOMException.js mode change 100644 => 100755 node_modules/domino/lib/DOMImplementation.js mode change 100644 => 100755 node_modules/domino/lib/DOMTokenList.js mode change 100644 => 100755 node_modules/domino/lib/Document.js mode change 100644 => 100755 node_modules/domino/lib/DocumentFragment.js mode change 100644 => 100755 node_modules/domino/lib/DocumentType.js mode change 100644 => 100755 node_modules/domino/lib/Element.js mode change 100644 => 100755 node_modules/domino/lib/Event.js mode change 100644 => 100755 node_modules/domino/lib/EventTarget.js mode change 100644 => 100755 node_modules/domino/lib/FilteredElementList.js mode change 100644 => 100755 node_modules/domino/lib/HTMLParser.js mode change 100644 => 100755 node_modules/domino/lib/Leaf.js mode change 100644 => 100755 node_modules/domino/lib/LinkedList.js mode change 100644 => 100755 node_modules/domino/lib/Location.js mode change 100644 => 100755 node_modules/domino/lib/MouseEvent.js mode change 100644 => 100755 node_modules/domino/lib/MutationConstants.js mode change 100644 => 100755 node_modules/domino/lib/NamedNodeMap.js mode change 100644 => 100755 node_modules/domino/lib/NavigatorID.js mode change 100644 => 100755 node_modules/domino/lib/Node.js mode change 100644 => 100755 node_modules/domino/lib/NodeFilter.js mode change 100644 => 100755 node_modules/domino/lib/NodeIterator.js mode change 100644 => 100755 node_modules/domino/lib/NodeList.es5.js mode change 100644 => 100755 node_modules/domino/lib/NodeList.es6.js mode change 100644 => 100755 node_modules/domino/lib/NodeList.js mode change 100644 => 100755 node_modules/domino/lib/NodeTraversal.js mode change 100644 => 100755 node_modules/domino/lib/NodeUtils.js mode change 100644 => 100755 node_modules/domino/lib/NonDocumentTypeChildNode.js mode change 100644 => 100755 node_modules/domino/lib/ProcessingInstruction.js mode change 100644 => 100755 node_modules/domino/lib/Text.js mode change 100644 => 100755 node_modules/domino/lib/TreeWalker.js mode change 100644 => 100755 node_modules/domino/lib/UIEvent.js mode change 100644 => 100755 node_modules/domino/lib/URL.js mode change 100644 => 100755 node_modules/domino/lib/URLUtils.js mode change 100644 => 100755 node_modules/domino/lib/Window.js mode change 100644 => 100755 node_modules/domino/lib/WindowTimers.js mode change 100644 => 100755 node_modules/domino/lib/attributes.js mode change 100644 => 100755 node_modules/domino/lib/config.js mode change 100644 => 100755 node_modules/domino/lib/cssparser.js mode change 100644 => 100755 node_modules/domino/lib/defineElement.js mode change 100644 => 100755 node_modules/domino/lib/events.js mode change 100644 => 100755 node_modules/domino/lib/htmlelts.js mode change 100644 => 100755 node_modules/domino/lib/impl.js mode change 100644 => 100755 node_modules/domino/lib/index.d.ts mode change 100644 => 100755 node_modules/domino/lib/index.js mode change 100644 => 100755 node_modules/domino/lib/select.js mode change 100644 => 100755 node_modules/domino/lib/sloppy.js mode change 100644 => 100755 node_modules/domino/lib/svg.js mode change 100644 => 100755 node_modules/domino/lib/utils.js mode change 100644 => 100755 node_modules/domino/lib/xmlnames.js mode change 100644 => 100755 node_modules/domino/package.json mode change 100644 => 100755 node_modules/ee-first/LICENSE mode change 100644 => 100755 node_modules/ee-first/README.md mode change 100644 => 100755 node_modules/ee-first/index.js mode change 100644 => 100755 node_modules/ee-first/package.json create mode 100755 node_modules/electron-to-chromium/CHANGELOG.md create mode 100755 node_modules/electron-to-chromium/LICENSE create mode 100755 node_modules/electron-to-chromium/README.md create mode 100755 node_modules/electron-to-chromium/chromium-versions.js create mode 100755 node_modules/electron-to-chromium/chromium-versions.json create mode 100755 node_modules/electron-to-chromium/full-chromium-versions.js create mode 100755 node_modules/electron-to-chromium/full-chromium-versions.json create mode 100755 node_modules/electron-to-chromium/full-versions.js create mode 100755 node_modules/electron-to-chromium/full-versions.json create mode 100755 node_modules/electron-to-chromium/index.js create mode 100755 node_modules/electron-to-chromium/package.json create mode 100755 node_modules/electron-to-chromium/versions.js create mode 100755 node_modules/electron-to-chromium/versions.json create mode 100755 node_modules/emittery/index.d.ts create mode 100755 node_modules/emittery/index.js create mode 100755 node_modules/emittery/license create mode 100755 node_modules/emittery/maps.js create mode 100755 node_modules/emittery/package.json create mode 100755 node_modules/emittery/readme.md create mode 100755 node_modules/emoji-regex/LICENSE-MIT.txt create mode 100755 node_modules/emoji-regex/README.md create mode 100755 node_modules/emoji-regex/es2015/index.js create mode 100755 node_modules/emoji-regex/es2015/text.js create mode 100755 node_modules/emoji-regex/index.d.ts create mode 100755 node_modules/emoji-regex/index.js create mode 100755 node_modules/emoji-regex/package.json create mode 100755 node_modules/emoji-regex/text.js mode change 100644 => 100755 node_modules/encodeurl/HISTORY.md mode change 100644 => 100755 node_modules/encodeurl/LICENSE mode change 100644 => 100755 node_modules/encodeurl/README.md mode change 100644 => 100755 node_modules/encodeurl/index.js mode change 100644 => 100755 node_modules/encodeurl/package.json create mode 100755 node_modules/error-ex/LICENSE create mode 100755 node_modules/error-ex/README.md create mode 100755 node_modules/error-ex/index.js create mode 100755 node_modules/error-ex/package.json create mode 100755 node_modules/escalade/dist/index.js create mode 100755 node_modules/escalade/dist/index.mjs create mode 100755 node_modules/escalade/index.d.ts create mode 100755 node_modules/escalade/license create mode 100755 node_modules/escalade/package.json create mode 100755 node_modules/escalade/readme.md create mode 100755 node_modules/escalade/sync/index.d.ts create mode 100755 node_modules/escalade/sync/index.js create mode 100755 node_modules/escalade/sync/index.mjs mode change 100644 => 100755 node_modules/escape-html/LICENSE mode change 100644 => 100755 node_modules/escape-html/Readme.md mode change 100644 => 100755 node_modules/escape-html/index.js mode change 100644 => 100755 node_modules/escape-html/package.json create mode 100755 node_modules/escape-string-regexp/index.d.ts create mode 100755 node_modules/escape-string-regexp/index.js create mode 100755 node_modules/escape-string-regexp/license create mode 100755 node_modules/escape-string-regexp/package.json create mode 100755 node_modules/escape-string-regexp/readme.md mode change 100644 => 100755 node_modules/escodegen/LICENSE.BSD mode change 100644 => 100755 node_modules/escodegen/README.md mode change 100644 => 100755 node_modules/escodegen/escodegen.js mode change 100644 => 100755 node_modules/escodegen/package.json mode change 100644 => 100755 node_modules/esprima/ChangeLog mode change 100644 => 100755 node_modules/esprima/LICENSE.BSD mode change 100644 => 100755 node_modules/esprima/README.md mode change 100644 => 100755 node_modules/esprima/dist/esprima.js mode change 100644 => 100755 node_modules/esprima/package.json mode change 100644 => 100755 node_modules/estraverse/.jshintrc mode change 100644 => 100755 node_modules/estraverse/LICENSE.BSD mode change 100644 => 100755 node_modules/estraverse/README.md mode change 100644 => 100755 node_modules/estraverse/estraverse.js mode change 100644 => 100755 node_modules/estraverse/gulpfile.js mode change 100644 => 100755 node_modules/estraverse/package.json mode change 100644 => 100755 node_modules/esutils/LICENSE.BSD mode change 100644 => 100755 node_modules/esutils/README.md mode change 100644 => 100755 node_modules/esutils/lib/ast.js mode change 100644 => 100755 node_modules/esutils/lib/code.js mode change 100644 => 100755 node_modules/esutils/lib/keyword.js mode change 100644 => 100755 node_modules/esutils/lib/utils.js mode change 100644 => 100755 node_modules/esutils/package.json mode change 100644 => 100755 node_modules/etag/HISTORY.md mode change 100644 => 100755 node_modules/etag/LICENSE mode change 100644 => 100755 node_modules/etag/README.md mode change 100644 => 100755 node_modules/etag/index.js mode change 100644 => 100755 node_modules/etag/package.json create mode 100755 node_modules/execa/index.d.ts create mode 100755 node_modules/execa/index.js create mode 100755 node_modules/execa/lib/command.js create mode 100755 node_modules/execa/lib/error.js create mode 100755 node_modules/execa/lib/kill.js create mode 100755 node_modules/execa/lib/promise.js create mode 100755 node_modules/execa/lib/stdio.js create mode 100755 node_modules/execa/lib/stream.js create mode 100755 node_modules/execa/license create mode 100755 node_modules/execa/package.json create mode 100755 node_modules/execa/readme.md create mode 100755 node_modules/exit/.jshintrc create mode 100755 node_modules/exit/.npmignore create mode 100755 node_modules/exit/.travis.yml create mode 100755 node_modules/exit/Gruntfile.js create mode 100755 node_modules/exit/LICENSE-MIT create mode 100755 node_modules/exit/README.md create mode 100755 node_modules/exit/lib/exit.js create mode 100755 node_modules/exit/package.json create mode 100755 node_modules/exit/test/exit_test.js create mode 100755 node_modules/exit/test/fixtures/10-stderr.txt create mode 100755 node_modules/exit/test/fixtures/10-stdout-stderr.txt create mode 100755 node_modules/exit/test/fixtures/10-stdout.txt create mode 100755 node_modules/exit/test/fixtures/100-stderr.txt create mode 100755 node_modules/exit/test/fixtures/100-stdout-stderr.txt create mode 100755 node_modules/exit/test/fixtures/100-stdout.txt create mode 100755 node_modules/exit/test/fixtures/1000-stderr.txt create mode 100755 node_modules/exit/test/fixtures/1000-stdout-stderr.txt create mode 100755 node_modules/exit/test/fixtures/1000-stdout.txt create mode 100755 node_modules/exit/test/fixtures/create-files.sh create mode 100755 node_modules/exit/test/fixtures/log-broken.js create mode 100755 node_modules/exit/test/fixtures/log.js create mode 100755 node_modules/expect/LICENSE create mode 100755 node_modules/expect/README.md create mode 100755 node_modules/expect/build/asymmetricMatchers.js create mode 100755 node_modules/expect/build/extractExpectedAssertionsErrors.js create mode 100755 node_modules/expect/build/index.d.ts create mode 100755 node_modules/expect/build/index.js create mode 100755 node_modules/expect/build/jestMatchersObject.js create mode 100755 node_modules/expect/build/matchers.js create mode 100755 node_modules/expect/build/print.js create mode 100755 node_modules/expect/build/spyMatchers.js create mode 100755 node_modules/expect/build/toThrowMatchers.js create mode 100755 node_modules/expect/build/types.js create mode 100755 node_modules/expect/package.json mode change 100644 => 100755 node_modules/express-rate-limit/changelog.md mode change 100644 => 100755 node_modules/express-rate-limit/dist/index.cjs mode change 100644 => 100755 node_modules/express-rate-limit/dist/index.d.ts mode change 100644 => 100755 node_modules/express-rate-limit/dist/index.mjs mode change 100644 => 100755 node_modules/express-rate-limit/license.md mode change 100644 => 100755 node_modules/express-rate-limit/package.json mode change 100644 => 100755 node_modules/express-rate-limit/readme.md mode change 100644 => 100755 node_modules/express-rate-limit/tsconfig.json mode change 100644 => 100755 node_modules/express/History.md mode change 100644 => 100755 node_modules/express/LICENSE mode change 100644 => 100755 node_modules/express/Readme.md mode change 100644 => 100755 node_modules/express/index.js mode change 100644 => 100755 node_modules/express/lib/application.js mode change 100644 => 100755 node_modules/express/lib/express.js mode change 100644 => 100755 node_modules/express/lib/middleware/init.js mode change 100644 => 100755 node_modules/express/lib/middleware/query.js mode change 100644 => 100755 node_modules/express/lib/request.js mode change 100644 => 100755 node_modules/express/lib/response.js mode change 100644 => 100755 node_modules/express/lib/router/index.js mode change 100644 => 100755 node_modules/express/lib/router/layer.js mode change 100644 => 100755 node_modules/express/lib/router/route.js mode change 100644 => 100755 node_modules/express/lib/utils.js mode change 100644 => 100755 node_modules/express/lib/view.js mode change 100644 => 100755 node_modules/express/package.json create mode 100755 node_modules/fast-json-stable-stringify/.eslintrc.yml create mode 100755 node_modules/fast-json-stable-stringify/.github/FUNDING.yml create mode 100755 node_modules/fast-json-stable-stringify/.travis.yml create mode 100755 node_modules/fast-json-stable-stringify/LICENSE create mode 100755 node_modules/fast-json-stable-stringify/README.md create mode 100755 node_modules/fast-json-stable-stringify/benchmark/index.js create mode 100755 node_modules/fast-json-stable-stringify/benchmark/test.json create mode 100755 node_modules/fast-json-stable-stringify/example/key_cmp.js create mode 100755 node_modules/fast-json-stable-stringify/example/nested.js create mode 100755 node_modules/fast-json-stable-stringify/example/str.js create mode 100755 node_modules/fast-json-stable-stringify/example/value_cmp.js create mode 100755 node_modules/fast-json-stable-stringify/index.d.ts create mode 100755 node_modules/fast-json-stable-stringify/index.js create mode 100755 node_modules/fast-json-stable-stringify/package.json create mode 100755 node_modules/fast-json-stable-stringify/test/cmp.js create mode 100755 node_modules/fast-json-stable-stringify/test/nested.js create mode 100755 node_modules/fast-json-stable-stringify/test/str.js create mode 100755 node_modules/fast-json-stable-stringify/test/to-json.js mode change 100644 => 100755 node_modules/fast-levenshtein/LICENSE.md mode change 100644 => 100755 node_modules/fast-levenshtein/README.md mode change 100644 => 100755 node_modules/fast-levenshtein/levenshtein.js mode change 100644 => 100755 node_modules/fast-levenshtein/package.json create mode 100755 node_modules/fb-watchman/README.md create mode 100755 node_modules/fb-watchman/index.js create mode 100755 node_modules/fb-watchman/package.json create mode 100755 node_modules/fill-range/LICENSE create mode 100755 node_modules/fill-range/README.md create mode 100755 node_modules/fill-range/index.js create mode 100755 node_modules/fill-range/package.json mode change 100644 => 100755 node_modules/finalhandler/HISTORY.md mode change 100644 => 100755 node_modules/finalhandler/LICENSE mode change 100644 => 100755 node_modules/finalhandler/README.md mode change 100644 => 100755 node_modules/finalhandler/SECURITY.md mode change 100644 => 100755 node_modules/finalhandler/index.js mode change 100644 => 100755 node_modules/finalhandler/package.json create mode 100755 node_modules/find-up/index.d.ts create mode 100755 node_modules/find-up/index.js create mode 100755 node_modules/find-up/license create mode 100755 node_modules/find-up/package.json create mode 100755 node_modules/find-up/readme.md mode change 100644 => 100755 node_modules/form-data/License mode change 100644 => 100755 node_modules/form-data/README.md.bak mode change 100644 => 100755 node_modules/form-data/Readme.md mode change 100644 => 100755 node_modules/form-data/index.d.ts mode change 100644 => 100755 node_modules/form-data/lib/browser.js mode change 100644 => 100755 node_modules/form-data/lib/form_data.js mode change 100644 => 100755 node_modules/form-data/lib/populate.js mode change 100644 => 100755 node_modules/form-data/package.json mode change 100644 => 100755 node_modules/forwarded/HISTORY.md mode change 100644 => 100755 node_modules/forwarded/LICENSE mode change 100644 => 100755 node_modules/forwarded/README.md mode change 100644 => 100755 node_modules/forwarded/index.js mode change 100644 => 100755 node_modules/forwarded/package.json mode change 100644 => 100755 node_modules/fresh/HISTORY.md mode change 100644 => 100755 node_modules/fresh/LICENSE mode change 100644 => 100755 node_modules/fresh/README.md mode change 100644 => 100755 node_modules/fresh/index.js mode change 100644 => 100755 node_modules/fresh/package.json create mode 100755 node_modules/fs.realpath/LICENSE create mode 100755 node_modules/fs.realpath/README.md create mode 100755 node_modules/fs.realpath/index.js create mode 100755 node_modules/fs.realpath/old.js create mode 100755 node_modules/fs.realpath/package.json mode change 100644 => 100755 node_modules/function-bind/.editorconfig mode change 100644 => 100755 node_modules/function-bind/.eslintrc mode change 100644 => 100755 node_modules/function-bind/.jscs.json mode change 100644 => 100755 node_modules/function-bind/.npmignore mode change 100644 => 100755 node_modules/function-bind/.travis.yml mode change 100644 => 100755 node_modules/function-bind/LICENSE mode change 100644 => 100755 node_modules/function-bind/README.md mode change 100644 => 100755 node_modules/function-bind/implementation.js mode change 100644 => 100755 node_modules/function-bind/index.js mode change 100644 => 100755 node_modules/function-bind/package.json mode change 100644 => 100755 node_modules/function-bind/test/.eslintrc mode change 100644 => 100755 node_modules/function-bind/test/index.js create mode 100755 node_modules/gensync/LICENSE create mode 100755 node_modules/gensync/README.md create mode 100755 node_modules/gensync/index.js create mode 100755 node_modules/gensync/index.js.flow create mode 100755 node_modules/gensync/package.json create mode 100755 node_modules/gensync/test/.babelrc create mode 100755 node_modules/gensync/test/index.test.js create mode 100755 node_modules/get-caller-file/LICENSE.md create mode 100755 node_modules/get-caller-file/README.md create mode 100755 node_modules/get-caller-file/index.d.ts create mode 100755 node_modules/get-caller-file/index.js create mode 100755 node_modules/get-caller-file/index.js.map create mode 100755 node_modules/get-caller-file/package.json mode change 100644 => 100755 node_modules/get-intrinsic/.eslintrc mode change 100644 => 100755 node_modules/get-intrinsic/.github/FUNDING.yml mode change 100644 => 100755 node_modules/get-intrinsic/.nycrc mode change 100644 => 100755 node_modules/get-intrinsic/CHANGELOG.md mode change 100644 => 100755 node_modules/get-intrinsic/LICENSE mode change 100644 => 100755 node_modules/get-intrinsic/README.md mode change 100644 => 100755 node_modules/get-intrinsic/index.js mode change 100644 => 100755 node_modules/get-intrinsic/package.json mode change 100644 => 100755 node_modules/get-intrinsic/test/GetIntrinsic.js create mode 100755 node_modules/get-package-type/CHANGELOG.md create mode 100755 node_modules/get-package-type/LICENSE create mode 100755 node_modules/get-package-type/README.md create mode 100755 node_modules/get-package-type/async.cjs create mode 100755 node_modules/get-package-type/cache.cjs create mode 100755 node_modules/get-package-type/index.cjs create mode 100755 node_modules/get-package-type/is-node-modules.cjs create mode 100755 node_modules/get-package-type/package.json create mode 100755 node_modules/get-package-type/sync.cjs create mode 100755 node_modules/get-stream/buffer-stream.js create mode 100755 node_modules/get-stream/index.d.ts create mode 100755 node_modules/get-stream/index.js create mode 100755 node_modules/get-stream/license create mode 100755 node_modules/get-stream/package.json create mode 100755 node_modules/get-stream/readme.md create mode 100755 node_modules/glob/LICENSE create mode 100755 node_modules/glob/README.md create mode 100755 node_modules/glob/common.js create mode 100755 node_modules/glob/glob.js create mode 100755 node_modules/glob/package.json create mode 100755 node_modules/glob/sync.js create mode 100755 node_modules/globals/globals.json create mode 100755 node_modules/globals/index.js create mode 100755 node_modules/globals/license create mode 100755 node_modules/globals/package.json create mode 100755 node_modules/globals/readme.md create mode 100755 node_modules/graceful-fs/LICENSE create mode 100755 node_modules/graceful-fs/README.md create mode 100755 node_modules/graceful-fs/clone.js create mode 100755 node_modules/graceful-fs/graceful-fs.js create mode 100755 node_modules/graceful-fs/legacy-streams.js create mode 100755 node_modules/graceful-fs/package.json create mode 100755 node_modules/graceful-fs/polyfills.js create mode 100755 node_modules/has-flag/index.d.ts create mode 100755 node_modules/has-flag/index.js create mode 100755 node_modules/has-flag/license create mode 100755 node_modules/has-flag/package.json create mode 100755 node_modules/has-flag/readme.md mode change 100644 => 100755 node_modules/has-symbols/.eslintrc mode change 100644 => 100755 node_modules/has-symbols/.github/FUNDING.yml mode change 100644 => 100755 node_modules/has-symbols/.nycrc mode change 100644 => 100755 node_modules/has-symbols/CHANGELOG.md mode change 100644 => 100755 node_modules/has-symbols/LICENSE mode change 100644 => 100755 node_modules/has-symbols/README.md mode change 100644 => 100755 node_modules/has-symbols/index.js mode change 100644 => 100755 node_modules/has-symbols/package.json mode change 100644 => 100755 node_modules/has-symbols/shams.js mode change 100644 => 100755 node_modules/has-symbols/test/index.js mode change 100644 => 100755 node_modules/has-symbols/test/shams/core-js.js mode change 100644 => 100755 node_modules/has-symbols/test/shams/get-own-property-symbols.js mode change 100644 => 100755 node_modules/has-symbols/test/tests.js mode change 100644 => 100755 node_modules/has/LICENSE-MIT mode change 100644 => 100755 node_modules/has/README.md mode change 100644 => 100755 node_modules/has/package.json mode change 100644 => 100755 node_modules/has/src/index.js mode change 100644 => 100755 node_modules/has/test/index.js mode change 100644 => 100755 node_modules/html-encoding-sniffer/LICENSE.txt mode change 100644 => 100755 node_modules/html-encoding-sniffer/README.md mode change 100644 => 100755 node_modules/html-encoding-sniffer/lib/html-encoding-sniffer.js mode change 100644 => 100755 node_modules/html-encoding-sniffer/package.json mode change 100644 => 100755 node_modules/html-entities/LICENSE mode change 100644 => 100755 node_modules/html-entities/README.md mode change 100644 => 100755 node_modules/html-entities/lib/index.d.ts mode change 100644 => 100755 node_modules/html-entities/lib/index.js mode change 100644 => 100755 node_modules/html-entities/lib/index.js.flow mode change 100644 => 100755 node_modules/html-entities/lib/named-references.js mode change 100644 => 100755 node_modules/html-entities/lib/numeric-unicode-map.js mode change 100644 => 100755 node_modules/html-entities/lib/surrogate-pairs.js mode change 100644 => 100755 node_modules/html-entities/package.json create mode 100755 node_modules/html-escaper/LICENSE.txt create mode 100755 node_modules/html-escaper/README.md create mode 100755 node_modules/html-escaper/cjs/index.js create mode 100755 node_modules/html-escaper/cjs/package.json create mode 100755 node_modules/html-escaper/esm/index.js create mode 100755 node_modules/html-escaper/index.js create mode 100755 node_modules/html-escaper/min.js create mode 100755 node_modules/html-escaper/package.json create mode 100755 node_modules/html-escaper/test/index.js create mode 100755 node_modules/html-escaper/test/package.json mode change 100644 => 100755 node_modules/http-errors/HISTORY.md mode change 100644 => 100755 node_modules/http-errors/LICENSE mode change 100644 => 100755 node_modules/http-errors/README.md mode change 100644 => 100755 node_modules/http-errors/index.js mode change 100644 => 100755 node_modules/http-errors/package.json mode change 100644 => 100755 node_modules/http-proxy-agent/README.md mode change 100644 => 100755 node_modules/http-proxy-agent/dist/agent.d.ts mode change 100644 => 100755 node_modules/http-proxy-agent/dist/agent.js mode change 100644 => 100755 node_modules/http-proxy-agent/dist/agent.js.map mode change 100644 => 100755 node_modules/http-proxy-agent/dist/index.d.ts mode change 100644 => 100755 node_modules/http-proxy-agent/dist/index.js mode change 100644 => 100755 node_modules/http-proxy-agent/dist/index.js.map mode change 100644 => 100755 node_modules/http-proxy-agent/node_modules/debug/LICENSE mode change 100644 => 100755 node_modules/http-proxy-agent/node_modules/debug/README.md mode change 100644 => 100755 node_modules/http-proxy-agent/node_modules/debug/package.json mode change 100644 => 100755 node_modules/http-proxy-agent/node_modules/debug/src/browser.js mode change 100644 => 100755 node_modules/http-proxy-agent/node_modules/debug/src/common.js mode change 100644 => 100755 node_modules/http-proxy-agent/node_modules/debug/src/index.js mode change 100644 => 100755 node_modules/http-proxy-agent/node_modules/debug/src/node.js mode change 100644 => 100755 node_modules/http-proxy-agent/node_modules/ms/index.js mode change 100644 => 100755 node_modules/http-proxy-agent/node_modules/ms/license.md mode change 100644 => 100755 node_modules/http-proxy-agent/node_modules/ms/package.json mode change 100644 => 100755 node_modules/http-proxy-agent/node_modules/ms/readme.md mode change 100644 => 100755 node_modules/http-proxy-agent/package.json mode change 100644 => 100755 node_modules/https-proxy-agent/README.md mode change 100644 => 100755 node_modules/https-proxy-agent/dist/agent.d.ts mode change 100644 => 100755 node_modules/https-proxy-agent/dist/agent.js mode change 100644 => 100755 node_modules/https-proxy-agent/dist/agent.js.map mode change 100644 => 100755 node_modules/https-proxy-agent/dist/index.d.ts mode change 100644 => 100755 node_modules/https-proxy-agent/dist/index.js mode change 100644 => 100755 node_modules/https-proxy-agent/dist/index.js.map mode change 100644 => 100755 node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts mode change 100644 => 100755 node_modules/https-proxy-agent/dist/parse-proxy-response.js mode change 100644 => 100755 node_modules/https-proxy-agent/dist/parse-proxy-response.js.map mode change 100644 => 100755 node_modules/https-proxy-agent/node_modules/debug/LICENSE mode change 100644 => 100755 node_modules/https-proxy-agent/node_modules/debug/README.md mode change 100644 => 100755 node_modules/https-proxy-agent/node_modules/debug/package.json mode change 100644 => 100755 node_modules/https-proxy-agent/node_modules/debug/src/browser.js mode change 100644 => 100755 node_modules/https-proxy-agent/node_modules/debug/src/common.js mode change 100644 => 100755 node_modules/https-proxy-agent/node_modules/debug/src/index.js mode change 100644 => 100755 node_modules/https-proxy-agent/node_modules/debug/src/node.js mode change 100644 => 100755 node_modules/https-proxy-agent/node_modules/ms/index.js mode change 100644 => 100755 node_modules/https-proxy-agent/node_modules/ms/license.md mode change 100644 => 100755 node_modules/https-proxy-agent/node_modules/ms/package.json mode change 100644 => 100755 node_modules/https-proxy-agent/node_modules/ms/readme.md mode change 100644 => 100755 node_modules/https-proxy-agent/package.json create mode 100755 node_modules/human-signals/CHANGELOG.md create mode 100755 node_modules/human-signals/LICENSE create mode 100755 node_modules/human-signals/README.md create mode 100755 node_modules/human-signals/build/src/core.js create mode 100755 node_modules/human-signals/build/src/core.js.map create mode 100755 node_modules/human-signals/build/src/main.d.ts create mode 100755 node_modules/human-signals/build/src/main.js create mode 100755 node_modules/human-signals/build/src/main.js.map create mode 100755 node_modules/human-signals/build/src/realtime.js create mode 100755 node_modules/human-signals/build/src/realtime.js.map create mode 100755 node_modules/human-signals/build/src/signals.js create mode 100755 node_modules/human-signals/build/src/signals.js.map create mode 100755 node_modules/human-signals/package.json mode change 100644 => 100755 node_modules/iconv-lite/Changelog.md mode change 100644 => 100755 node_modules/iconv-lite/LICENSE mode change 100644 => 100755 node_modules/iconv-lite/README.md mode change 100644 => 100755 node_modules/iconv-lite/encodings/dbcs-codec.js mode change 100644 => 100755 node_modules/iconv-lite/encodings/dbcs-data.js mode change 100644 => 100755 node_modules/iconv-lite/encodings/index.js mode change 100644 => 100755 node_modules/iconv-lite/encodings/internal.js mode change 100644 => 100755 node_modules/iconv-lite/encodings/sbcs-codec.js mode change 100644 => 100755 node_modules/iconv-lite/encodings/sbcs-data-generated.js mode change 100644 => 100755 node_modules/iconv-lite/encodings/sbcs-data.js mode change 100644 => 100755 node_modules/iconv-lite/encodings/tables/big5-added.json mode change 100644 => 100755 node_modules/iconv-lite/encodings/tables/cp936.json mode change 100644 => 100755 node_modules/iconv-lite/encodings/tables/cp949.json mode change 100644 => 100755 node_modules/iconv-lite/encodings/tables/cp950.json mode change 100644 => 100755 node_modules/iconv-lite/encodings/tables/eucjp.json mode change 100644 => 100755 node_modules/iconv-lite/encodings/tables/gb18030-ranges.json mode change 100644 => 100755 node_modules/iconv-lite/encodings/tables/gbk-added.json mode change 100644 => 100755 node_modules/iconv-lite/encodings/tables/shiftjis.json mode change 100644 => 100755 node_modules/iconv-lite/encodings/utf16.js mode change 100644 => 100755 node_modules/iconv-lite/encodings/utf7.js mode change 100644 => 100755 node_modules/iconv-lite/lib/bom-handling.js mode change 100644 => 100755 node_modules/iconv-lite/lib/extend-node.js mode change 100644 => 100755 node_modules/iconv-lite/lib/index.d.ts mode change 100644 => 100755 node_modules/iconv-lite/lib/index.js mode change 100644 => 100755 node_modules/iconv-lite/lib/streams.js mode change 100644 => 100755 node_modules/iconv-lite/package.json create mode 100755 node_modules/import-local/fixtures/cli.js create mode 100755 node_modules/import-local/index.js create mode 100755 node_modules/import-local/license create mode 100755 node_modules/import-local/package.json create mode 100755 node_modules/import-local/readme.md create mode 100755 node_modules/imurmurhash/README.md create mode 100755 node_modules/imurmurhash/imurmurhash.js create mode 100755 node_modules/imurmurhash/imurmurhash.min.js create mode 100755 node_modules/imurmurhash/package.json create mode 100755 node_modules/inflight/LICENSE create mode 100755 node_modules/inflight/README.md create mode 100755 node_modules/inflight/inflight.js create mode 100755 node_modules/inflight/package.json mode change 100644 => 100755 node_modules/inherits/LICENSE mode change 100644 => 100755 node_modules/inherits/README.md mode change 100644 => 100755 node_modules/inherits/inherits.js mode change 100644 => 100755 node_modules/inherits/inherits_browser.js mode change 100644 => 100755 node_modules/inherits/package.json mode change 100644 => 100755 node_modules/ipaddr.js/LICENSE mode change 100644 => 100755 node_modules/ipaddr.js/README.md mode change 100644 => 100755 node_modules/ipaddr.js/ipaddr.min.js mode change 100644 => 100755 node_modules/ipaddr.js/lib/ipaddr.js mode change 100644 => 100755 node_modules/ipaddr.js/lib/ipaddr.js.d.ts mode change 100644 => 100755 node_modules/ipaddr.js/package.json create mode 100755 node_modules/is-arrayish/.editorconfig create mode 100755 node_modules/is-arrayish/.istanbul.yml create mode 100755 node_modules/is-arrayish/.npmignore create mode 100755 node_modules/is-arrayish/.travis.yml create mode 100755 node_modules/is-arrayish/LICENSE create mode 100755 node_modules/is-arrayish/README.md create mode 100755 node_modules/is-arrayish/index.js create mode 100755 node_modules/is-arrayish/package.json create mode 100755 node_modules/is-core-module/.eslintrc create mode 100755 node_modules/is-core-module/.nycrc create mode 100755 node_modules/is-core-module/CHANGELOG.md create mode 100755 node_modules/is-core-module/LICENSE create mode 100755 node_modules/is-core-module/README.md create mode 100755 node_modules/is-core-module/core.json create mode 100755 node_modules/is-core-module/index.js create mode 100755 node_modules/is-core-module/package.json create mode 100755 node_modules/is-core-module/test/index.js create mode 100755 node_modules/is-fullwidth-code-point/index.d.ts create mode 100755 node_modules/is-fullwidth-code-point/index.js create mode 100755 node_modules/is-fullwidth-code-point/license create mode 100755 node_modules/is-fullwidth-code-point/package.json create mode 100755 node_modules/is-fullwidth-code-point/readme.md create mode 100755 node_modules/is-generator-fn/index.d.ts create mode 100755 node_modules/is-generator-fn/index.js create mode 100755 node_modules/is-generator-fn/license create mode 100755 node_modules/is-generator-fn/package.json create mode 100755 node_modules/is-generator-fn/readme.md create mode 100755 node_modules/is-number/LICENSE create mode 100755 node_modules/is-number/README.md create mode 100755 node_modules/is-number/index.js create mode 100755 node_modules/is-number/package.json mode change 100644 => 100755 node_modules/is-potential-custom-element-name/LICENSE-MIT.txt mode change 100644 => 100755 node_modules/is-potential-custom-element-name/README.md mode change 100644 => 100755 node_modules/is-potential-custom-element-name/package.json create mode 100755 node_modules/is-stream/index.d.ts create mode 100755 node_modules/is-stream/index.js create mode 100755 node_modules/is-stream/license create mode 100755 node_modules/is-stream/package.json create mode 100755 node_modules/is-stream/readme.md create mode 100755 node_modules/isexe/.npmignore create mode 100755 node_modules/isexe/LICENSE create mode 100755 node_modules/isexe/README.md create mode 100755 node_modules/isexe/index.js create mode 100755 node_modules/isexe/mode.js create mode 100755 node_modules/isexe/package.json create mode 100755 node_modules/isexe/test/basic.js create mode 100755 node_modules/isexe/windows.js create mode 100755 node_modules/istanbul-lib-coverage/CHANGELOG.md create mode 100755 node_modules/istanbul-lib-coverage/LICENSE create mode 100755 node_modules/istanbul-lib-coverage/README.md create mode 100755 node_modules/istanbul-lib-coverage/index.js create mode 100755 node_modules/istanbul-lib-coverage/lib/coverage-map.js create mode 100755 node_modules/istanbul-lib-coverage/lib/coverage-summary.js create mode 100755 node_modules/istanbul-lib-coverage/lib/data-properties.js create mode 100755 node_modules/istanbul-lib-coverage/lib/file-coverage.js create mode 100755 node_modules/istanbul-lib-coverage/lib/percent.js create mode 100755 node_modules/istanbul-lib-coverage/package.json create mode 100755 node_modules/istanbul-lib-instrument/CHANGELOG.md create mode 100755 node_modules/istanbul-lib-instrument/LICENSE create mode 100755 node_modules/istanbul-lib-instrument/README.md create mode 100755 node_modules/istanbul-lib-instrument/package.json create mode 100755 node_modules/istanbul-lib-instrument/src/constants.js create mode 100755 node_modules/istanbul-lib-instrument/src/index.js create mode 100755 node_modules/istanbul-lib-instrument/src/instrumenter.js create mode 100755 node_modules/istanbul-lib-instrument/src/read-coverage.js create mode 100755 node_modules/istanbul-lib-instrument/src/source-coverage.js create mode 100755 node_modules/istanbul-lib-instrument/src/visitor.js create mode 100755 node_modules/istanbul-lib-report/CHANGELOG.md create mode 100755 node_modules/istanbul-lib-report/LICENSE create mode 100755 node_modules/istanbul-lib-report/README.md create mode 100755 node_modules/istanbul-lib-report/index.js create mode 100755 node_modules/istanbul-lib-report/lib/context.js create mode 100755 node_modules/istanbul-lib-report/lib/file-writer.js create mode 100755 node_modules/istanbul-lib-report/lib/path.js create mode 100755 node_modules/istanbul-lib-report/lib/report-base.js create mode 100755 node_modules/istanbul-lib-report/lib/summarizer-factory.js create mode 100755 node_modules/istanbul-lib-report/lib/tree.js create mode 100755 node_modules/istanbul-lib-report/lib/watermarks.js create mode 100755 node_modules/istanbul-lib-report/lib/xml-writer.js create mode 100755 node_modules/istanbul-lib-report/package.json create mode 100755 node_modules/istanbul-lib-source-maps/CHANGELOG.md create mode 100755 node_modules/istanbul-lib-source-maps/LICENSE create mode 100755 node_modules/istanbul-lib-source-maps/README.md create mode 100755 node_modules/istanbul-lib-source-maps/index.js create mode 100755 node_modules/istanbul-lib-source-maps/lib/get-mapping.js create mode 100755 node_modules/istanbul-lib-source-maps/lib/map-store.js create mode 100755 node_modules/istanbul-lib-source-maps/lib/mapped.js create mode 100755 node_modules/istanbul-lib-source-maps/lib/pathutils.js create mode 100755 node_modules/istanbul-lib-source-maps/lib/transform-utils.js create mode 100755 node_modules/istanbul-lib-source-maps/lib/transformer.js create mode 100755 node_modules/istanbul-lib-source-maps/node_modules/debug/LICENSE create mode 100755 node_modules/istanbul-lib-source-maps/node_modules/debug/README.md create mode 100755 node_modules/istanbul-lib-source-maps/node_modules/debug/package.json create mode 100755 node_modules/istanbul-lib-source-maps/node_modules/debug/src/browser.js create mode 100755 node_modules/istanbul-lib-source-maps/node_modules/debug/src/common.js create mode 100755 node_modules/istanbul-lib-source-maps/node_modules/debug/src/index.js create mode 100755 node_modules/istanbul-lib-source-maps/node_modules/debug/src/node.js create mode 100755 node_modules/istanbul-lib-source-maps/node_modules/ms/index.js create mode 100755 node_modules/istanbul-lib-source-maps/node_modules/ms/license.md create mode 100755 node_modules/istanbul-lib-source-maps/node_modules/ms/package.json create mode 100755 node_modules/istanbul-lib-source-maps/node_modules/ms/readme.md create mode 100755 node_modules/istanbul-lib-source-maps/package.json create mode 100755 node_modules/istanbul-reports/CHANGELOG.md create mode 100755 node_modules/istanbul-reports/LICENSE create mode 100755 node_modules/istanbul-reports/README.md create mode 100755 node_modules/istanbul-reports/index.js create mode 100755 node_modules/istanbul-reports/lib/clover/index.js create mode 100755 node_modules/istanbul-reports/lib/cobertura/index.js create mode 100755 node_modules/istanbul-reports/lib/html-spa/.babelrc create mode 100755 node_modules/istanbul-reports/lib/html-spa/assets/bundle.js create mode 100755 node_modules/istanbul-reports/lib/html-spa/assets/sort-arrow-sprite.png create mode 100755 node_modules/istanbul-reports/lib/html-spa/assets/spa.css create mode 100755 node_modules/istanbul-reports/lib/html-spa/index.js create mode 100755 node_modules/istanbul-reports/lib/html-spa/src/fileBreadcrumbs.js create mode 100755 node_modules/istanbul-reports/lib/html-spa/src/filterToggle.js create mode 100755 node_modules/istanbul-reports/lib/html-spa/src/flattenToggle.js create mode 100755 node_modules/istanbul-reports/lib/html-spa/src/getChildData.js create mode 100755 node_modules/istanbul-reports/lib/html-spa/src/index.js create mode 100755 node_modules/istanbul-reports/lib/html-spa/src/routing.js create mode 100755 node_modules/istanbul-reports/lib/html-spa/src/summaryHeader.js create mode 100755 node_modules/istanbul-reports/lib/html-spa/src/summaryTableHeader.js create mode 100755 node_modules/istanbul-reports/lib/html-spa/src/summaryTableLine.js create mode 100755 node_modules/istanbul-reports/lib/html-spa/webpack.config.js create mode 100755 node_modules/istanbul-reports/lib/html/annotator.js create mode 100755 node_modules/istanbul-reports/lib/html/assets/base.css create mode 100755 node_modules/istanbul-reports/lib/html/assets/block-navigation.js create mode 100755 node_modules/istanbul-reports/lib/html/assets/favicon.png create mode 100755 node_modules/istanbul-reports/lib/html/assets/sort-arrow-sprite.png create mode 100755 node_modules/istanbul-reports/lib/html/assets/sorter.js create mode 100755 node_modules/istanbul-reports/lib/html/assets/vendor/prettify.css create mode 100755 node_modules/istanbul-reports/lib/html/assets/vendor/prettify.js create mode 100755 node_modules/istanbul-reports/lib/html/index.js create mode 100755 node_modules/istanbul-reports/lib/html/insertion-text.js create mode 100755 node_modules/istanbul-reports/lib/json-summary/index.js create mode 100755 node_modules/istanbul-reports/lib/json/index.js create mode 100755 node_modules/istanbul-reports/lib/lcov/index.js create mode 100755 node_modules/istanbul-reports/lib/lcovonly/index.js create mode 100755 node_modules/istanbul-reports/lib/none/index.js create mode 100755 node_modules/istanbul-reports/lib/teamcity/index.js create mode 100755 node_modules/istanbul-reports/lib/text-lcov/index.js create mode 100755 node_modules/istanbul-reports/lib/text-summary/index.js create mode 100755 node_modules/istanbul-reports/lib/text/index.js create mode 100755 node_modules/istanbul-reports/package.json create mode 100755 node_modules/jest-changed-files/LICENSE create mode 100755 node_modules/jest-changed-files/README.md create mode 100755 node_modules/jest-changed-files/build/git.js create mode 100755 node_modules/jest-changed-files/build/hg.js create mode 100755 node_modules/jest-changed-files/build/index.d.ts create mode 100755 node_modules/jest-changed-files/build/index.js create mode 100755 node_modules/jest-changed-files/build/types.js create mode 100755 node_modules/jest-changed-files/package.json create mode 100755 node_modules/jest-circus/LICENSE create mode 100755 node_modules/jest-circus/README.md create mode 100755 node_modules/jest-circus/build/eventHandler.js create mode 100755 node_modules/jest-circus/build/formatNodeAssertErrors.js create mode 100755 node_modules/jest-circus/build/globalErrorHandlers.js create mode 100755 node_modules/jest-circus/build/index.d.ts create mode 100755 node_modules/jest-circus/build/index.js create mode 100755 node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js create mode 100755 node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js create mode 100755 node_modules/jest-circus/build/run.js create mode 100755 node_modules/jest-circus/build/state.js create mode 100755 node_modules/jest-circus/build/testCaseReportHandler.js create mode 100755 node_modules/jest-circus/build/types.js create mode 100755 node_modules/jest-circus/build/utils.js create mode 100755 node_modules/jest-circus/package.json create mode 100755 node_modules/jest-circus/runner.js create mode 100755 node_modules/jest-cli/LICENSE create mode 100755 node_modules/jest-cli/README.md create mode 100755 node_modules/jest-cli/bin/jest.js create mode 100755 node_modules/jest-cli/build/args.js create mode 100755 node_modules/jest-cli/build/index.d.ts create mode 100755 node_modules/jest-cli/build/index.js create mode 100755 node_modules/jest-cli/build/init/errors.js create mode 100755 node_modules/jest-cli/build/init/generateConfigFile.js create mode 100755 node_modules/jest-cli/build/init/index.js create mode 100755 node_modules/jest-cli/build/init/modifyPackageJson.js create mode 100755 node_modules/jest-cli/build/init/questions.js create mode 100755 node_modules/jest-cli/build/init/types.js create mode 100755 node_modules/jest-cli/build/run.js create mode 100755 node_modules/jest-cli/package.json create mode 100755 node_modules/jest-config/LICENSE create mode 100755 node_modules/jest-config/build/Defaults.js create mode 100755 node_modules/jest-config/build/Deprecated.js create mode 100755 node_modules/jest-config/build/Descriptions.js create mode 100755 node_modules/jest-config/build/ReporterValidationErrors.js create mode 100755 node_modules/jest-config/build/ValidConfig.js create mode 100755 node_modules/jest-config/build/color.js create mode 100755 node_modules/jest-config/build/constants.js create mode 100755 node_modules/jest-config/build/getCacheDirectory.js create mode 100755 node_modules/jest-config/build/getMaxWorkers.js create mode 100755 node_modules/jest-config/build/index.d.ts create mode 100755 node_modules/jest-config/build/index.js create mode 100755 node_modules/jest-config/build/normalize.js create mode 100755 node_modules/jest-config/build/parseShardPair.js create mode 100755 node_modules/jest-config/build/readConfigFileAndSetRootDir.js create mode 100755 node_modules/jest-config/build/resolveConfigPath.js create mode 100755 node_modules/jest-config/build/setFromArgv.js create mode 100755 node_modules/jest-config/build/stringToBytes.js create mode 100755 node_modules/jest-config/build/utils.js create mode 100755 node_modules/jest-config/build/validatePattern.js create mode 100755 node_modules/jest-config/package.json create mode 100755 node_modules/jest-diff/LICENSE create mode 100755 node_modules/jest-diff/README.md create mode 100755 node_modules/jest-diff/build/cleanupSemantic.js create mode 100755 node_modules/jest-diff/build/constants.js create mode 100755 node_modules/jest-diff/build/diffLines.js create mode 100755 node_modules/jest-diff/build/diffStrings.js create mode 100755 node_modules/jest-diff/build/getAlignedDiffs.js create mode 100755 node_modules/jest-diff/build/index.d.ts create mode 100755 node_modules/jest-diff/build/index.js create mode 100755 node_modules/jest-diff/build/joinAlignedDiffs.js create mode 100755 node_modules/jest-diff/build/normalizeDiffOptions.js create mode 100755 node_modules/jest-diff/build/printDiffs.js create mode 100755 node_modules/jest-diff/build/types.js create mode 100755 node_modules/jest-diff/package.json create mode 100755 node_modules/jest-docblock/LICENSE create mode 100755 node_modules/jest-docblock/README.md create mode 100755 node_modules/jest-docblock/build/index.d.ts create mode 100755 node_modules/jest-docblock/build/index.js create mode 100755 node_modules/jest-docblock/package.json create mode 100755 node_modules/jest-each/LICENSE create mode 100755 node_modules/jest-each/README.md create mode 100755 node_modules/jest-each/build/bind.js create mode 100755 node_modules/jest-each/build/index.d.ts create mode 100755 node_modules/jest-each/build/index.js create mode 100755 node_modules/jest-each/build/table/array.js create mode 100755 node_modules/jest-each/build/table/interpolation.js create mode 100755 node_modules/jest-each/build/table/template.js create mode 100755 node_modules/jest-each/build/validation.js create mode 100755 node_modules/jest-each/package.json create mode 100755 node_modules/jest-environment-node/LICENSE create mode 100755 node_modules/jest-environment-node/build/index.d.ts create mode 100755 node_modules/jest-environment-node/build/index.js create mode 100755 node_modules/jest-environment-node/package.json create mode 100755 node_modules/jest-get-type/LICENSE create mode 100755 node_modules/jest-get-type/build/index.d.ts create mode 100755 node_modules/jest-get-type/build/index.js create mode 100755 node_modules/jest-get-type/package.json create mode 100755 node_modules/jest-haste-map/LICENSE create mode 100755 node_modules/jest-haste-map/build/HasteFS.js create mode 100755 node_modules/jest-haste-map/build/ModuleMap.js create mode 100755 node_modules/jest-haste-map/build/blacklist.js create mode 100755 node_modules/jest-haste-map/build/constants.js create mode 100755 node_modules/jest-haste-map/build/crawlers/node.js create mode 100755 node_modules/jest-haste-map/build/crawlers/watchman.js create mode 100755 node_modules/jest-haste-map/build/getMockName.js create mode 100755 node_modules/jest-haste-map/build/index.d.ts create mode 100755 node_modules/jest-haste-map/build/index.js create mode 100755 node_modules/jest-haste-map/build/lib/dependencyExtractor.js create mode 100755 node_modules/jest-haste-map/build/lib/fast_path.js create mode 100755 node_modules/jest-haste-map/build/lib/getPlatformExtension.js create mode 100755 node_modules/jest-haste-map/build/lib/isWatchmanInstalled.js create mode 100755 node_modules/jest-haste-map/build/lib/normalizePathSep.js create mode 100755 node_modules/jest-haste-map/build/types.js create mode 100755 node_modules/jest-haste-map/build/watchers/FSEventsWatcher.js create mode 100755 node_modules/jest-haste-map/build/watchers/NodeWatcher.js create mode 100755 node_modules/jest-haste-map/build/watchers/RecrawlWarning.js create mode 100755 node_modules/jest-haste-map/build/watchers/WatchmanWatcher.js create mode 100755 node_modules/jest-haste-map/build/watchers/common.js create mode 100755 node_modules/jest-haste-map/build/worker.js create mode 100755 node_modules/jest-haste-map/package.json create mode 100755 node_modules/jest-leak-detector/LICENSE create mode 100755 node_modules/jest-leak-detector/README.md create mode 100755 node_modules/jest-leak-detector/build/index.d.ts create mode 100755 node_modules/jest-leak-detector/build/index.js create mode 100755 node_modules/jest-leak-detector/package.json create mode 100755 node_modules/jest-matcher-utils/LICENSE create mode 100755 node_modules/jest-matcher-utils/README.md create mode 100755 node_modules/jest-matcher-utils/build/Replaceable.js create mode 100755 node_modules/jest-matcher-utils/build/deepCyclicCopyReplaceable.js create mode 100755 node_modules/jest-matcher-utils/build/index.d.ts create mode 100755 node_modules/jest-matcher-utils/build/index.js create mode 100755 node_modules/jest-matcher-utils/package.json create mode 100755 node_modules/jest-message-util/LICENSE create mode 100755 node_modules/jest-message-util/build/index.d.ts create mode 100755 node_modules/jest-message-util/build/index.js create mode 100755 node_modules/jest-message-util/build/types.js create mode 100755 node_modules/jest-message-util/package.json create mode 100755 node_modules/jest-mock/LICENSE create mode 100755 node_modules/jest-mock/README.md create mode 100755 node_modules/jest-mock/build/index.d.ts create mode 100755 node_modules/jest-mock/build/index.js create mode 100755 node_modules/jest-mock/package.json create mode 100755 node_modules/jest-pnp-resolver/README.md create mode 100755 node_modules/jest-pnp-resolver/createRequire.js create mode 100755 node_modules/jest-pnp-resolver/getDefaultResolver.js create mode 100755 node_modules/jest-pnp-resolver/index.d.ts create mode 100755 node_modules/jest-pnp-resolver/index.js create mode 100755 node_modules/jest-pnp-resolver/package.json create mode 100755 node_modules/jest-regex-util/LICENSE create mode 100755 node_modules/jest-regex-util/build/index.d.ts create mode 100755 node_modules/jest-regex-util/build/index.js create mode 100755 node_modules/jest-regex-util/package.json create mode 100755 node_modules/jest-resolve-dependencies/LICENSE create mode 100755 node_modules/jest-resolve-dependencies/build/index.d.ts create mode 100755 node_modules/jest-resolve-dependencies/build/index.js create mode 100755 node_modules/jest-resolve-dependencies/package.json create mode 100755 node_modules/jest-resolve/LICENSE create mode 100755 node_modules/jest-resolve/build/ModuleNotFoundError.js create mode 100755 node_modules/jest-resolve/build/defaultResolver.js create mode 100755 node_modules/jest-resolve/build/fileWalkers.js create mode 100755 node_modules/jest-resolve/build/index.d.ts create mode 100755 node_modules/jest-resolve/build/index.js create mode 100755 node_modules/jest-resolve/build/isBuiltinModule.js create mode 100755 node_modules/jest-resolve/build/nodeModulesPaths.js create mode 100755 node_modules/jest-resolve/build/resolver.js create mode 100755 node_modules/jest-resolve/build/shouldLoadAsEsm.js create mode 100755 node_modules/jest-resolve/build/types.js create mode 100755 node_modules/jest-resolve/build/utils.js create mode 100755 node_modules/jest-resolve/package.json create mode 100755 node_modules/jest-runner/LICENSE create mode 100755 node_modules/jest-runner/build/index.d.ts create mode 100755 node_modules/jest-runner/build/index.js create mode 100755 node_modules/jest-runner/build/runTest.js create mode 100755 node_modules/jest-runner/build/testWorker.js create mode 100755 node_modules/jest-runner/build/types.js create mode 100755 node_modules/jest-runner/package.json create mode 100755 node_modules/jest-runtime/LICENSE create mode 100755 node_modules/jest-runtime/build/helpers.js create mode 100755 node_modules/jest-runtime/build/index.d.ts create mode 100755 node_modules/jest-runtime/build/index.js create mode 100755 node_modules/jest-runtime/package.json create mode 100755 node_modules/jest-snapshot/LICENSE create mode 100755 node_modules/jest-snapshot/build/InlineSnapshots.js create mode 100755 node_modules/jest-snapshot/build/SnapshotResolver.js create mode 100755 node_modules/jest-snapshot/build/State.js create mode 100755 node_modules/jest-snapshot/build/colors.js create mode 100755 node_modules/jest-snapshot/build/dedentLines.js create mode 100755 node_modules/jest-snapshot/build/index.d.ts create mode 100755 node_modules/jest-snapshot/build/index.js create mode 100755 node_modules/jest-snapshot/build/mockSerializer.js create mode 100755 node_modules/jest-snapshot/build/plugins.js create mode 100755 node_modules/jest-snapshot/build/printSnapshot.js create mode 100755 node_modules/jest-snapshot/build/types.js create mode 100755 node_modules/jest-snapshot/build/utils.js create mode 120000 node_modules/jest-snapshot/node_modules/.bin/semver create mode 100755 node_modules/jest-snapshot/node_modules/lru-cache/LICENSE create mode 100755 node_modules/jest-snapshot/node_modules/lru-cache/README.md create mode 100755 node_modules/jest-snapshot/node_modules/lru-cache/index.js create mode 100755 node_modules/jest-snapshot/node_modules/lru-cache/package.json create mode 100755 node_modules/jest-snapshot/node_modules/semver/LICENSE create mode 100755 node_modules/jest-snapshot/node_modules/semver/README.md create mode 100755 node_modules/jest-snapshot/node_modules/semver/bin/semver.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/classes/comparator.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/classes/index.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/classes/range.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/classes/semver.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/clean.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/cmp.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/coerce.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/compare-build.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/compare-loose.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/compare.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/diff.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/eq.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/gt.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/gte.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/inc.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/lt.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/lte.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/major.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/minor.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/neq.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/parse.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/patch.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/prerelease.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/rcompare.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/rsort.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/satisfies.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/sort.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/functions/valid.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/index.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/internal/constants.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/internal/debug.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/internal/identifiers.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/internal/parse-options.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/internal/re.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/package.json create mode 100755 node_modules/jest-snapshot/node_modules/semver/preload.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/range.bnf create mode 100755 node_modules/jest-snapshot/node_modules/semver/ranges/gtr.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/ranges/intersects.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/ranges/ltr.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/ranges/max-satisfying.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/ranges/min-satisfying.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/ranges/min-version.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/ranges/outside.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/ranges/simplify.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/ranges/subset.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/ranges/to-comparators.js create mode 100755 node_modules/jest-snapshot/node_modules/semver/ranges/valid.js create mode 100755 node_modules/jest-snapshot/node_modules/yallist/LICENSE create mode 100755 node_modules/jest-snapshot/node_modules/yallist/README.md create mode 100755 node_modules/jest-snapshot/node_modules/yallist/iterator.js create mode 100755 node_modules/jest-snapshot/node_modules/yallist/package.json create mode 100755 node_modules/jest-snapshot/node_modules/yallist/yallist.js create mode 100755 node_modules/jest-snapshot/package.json create mode 100755 node_modules/jest-util/LICENSE create mode 100755 node_modules/jest-util/build/ErrorWithStack.js create mode 100755 node_modules/jest-util/build/clearLine.js create mode 100755 node_modules/jest-util/build/convertDescriptorToString.js create mode 100755 node_modules/jest-util/build/createDirectory.js create mode 100755 node_modules/jest-util/build/createProcessObject.js create mode 100755 node_modules/jest-util/build/deepCyclicCopy.js create mode 100755 node_modules/jest-util/build/formatTime.js create mode 100755 node_modules/jest-util/build/globsToMatcher.js create mode 100755 node_modules/jest-util/build/index.d.ts create mode 100755 node_modules/jest-util/build/index.js create mode 100755 node_modules/jest-util/build/installCommonGlobals.js create mode 100755 node_modules/jest-util/build/interopRequireDefault.js create mode 100755 node_modules/jest-util/build/isInteractive.js create mode 100755 node_modules/jest-util/build/isPromise.js create mode 100755 node_modules/jest-util/build/pluralize.js create mode 100755 node_modules/jest-util/build/preRunMessage.js create mode 100755 node_modules/jest-util/build/replacePathSepForGlob.js create mode 100755 node_modules/jest-util/build/requireOrImportModule.js create mode 100755 node_modules/jest-util/build/setGlobal.js create mode 100755 node_modules/jest-util/build/specialChars.js create mode 100755 node_modules/jest-util/build/testPathPatternToRegExp.js create mode 100755 node_modules/jest-util/build/tryRealpath.js create mode 100755 node_modules/jest-util/package.json create mode 100755 node_modules/jest-validate/LICENSE create mode 100755 node_modules/jest-validate/README.md create mode 100755 node_modules/jest-validate/build/condition.js create mode 100755 node_modules/jest-validate/build/defaultConfig.js create mode 100755 node_modules/jest-validate/build/deprecated.js create mode 100755 node_modules/jest-validate/build/errors.js create mode 100755 node_modules/jest-validate/build/exampleConfig.js create mode 100755 node_modules/jest-validate/build/index.d.ts create mode 100755 node_modules/jest-validate/build/index.js create mode 100755 node_modules/jest-validate/build/types.js create mode 100755 node_modules/jest-validate/build/utils.js create mode 100755 node_modules/jest-validate/build/validate.js create mode 100755 node_modules/jest-validate/build/validateCLIOptions.js create mode 100755 node_modules/jest-validate/build/warnings.js create mode 100755 node_modules/jest-validate/node_modules/camelcase/index.d.ts create mode 100755 node_modules/jest-validate/node_modules/camelcase/index.js create mode 100755 node_modules/jest-validate/node_modules/camelcase/license create mode 100755 node_modules/jest-validate/node_modules/camelcase/package.json create mode 100755 node_modules/jest-validate/node_modules/camelcase/readme.md create mode 100755 node_modules/jest-validate/package.json create mode 100755 node_modules/jest-watcher/LICENSE create mode 100755 node_modules/jest-watcher/build/BaseWatchPlugin.js create mode 100755 node_modules/jest-watcher/build/JestHooks.js create mode 100755 node_modules/jest-watcher/build/PatternPrompt.js create mode 100755 node_modules/jest-watcher/build/TestWatcher.js create mode 100755 node_modules/jest-watcher/build/constants.js create mode 100755 node_modules/jest-watcher/build/index.d.ts create mode 100755 node_modules/jest-watcher/build/index.js create mode 100755 node_modules/jest-watcher/build/lib/Prompt.js create mode 100755 node_modules/jest-watcher/build/lib/colorize.js create mode 100755 node_modules/jest-watcher/build/lib/formatTestNameByPattern.js create mode 100755 node_modules/jest-watcher/build/lib/patternModeHelpers.js create mode 100755 node_modules/jest-watcher/build/lib/scroll.js create mode 100755 node_modules/jest-watcher/build/types.js create mode 100755 node_modules/jest-watcher/package.json create mode 100755 node_modules/jest-worker/LICENSE create mode 100755 node_modules/jest-worker/README.md create mode 100755 node_modules/jest-worker/build/Farm.js create mode 100755 node_modules/jest-worker/build/FifoQueue.js create mode 100755 node_modules/jest-worker/build/PriorityQueue.js create mode 100755 node_modules/jest-worker/build/WorkerPool.js create mode 100755 node_modules/jest-worker/build/base/BaseWorkerPool.js create mode 100755 node_modules/jest-worker/build/index.d.ts create mode 100755 node_modules/jest-worker/build/index.js create mode 100755 node_modules/jest-worker/build/types.js create mode 100755 node_modules/jest-worker/build/workers/ChildProcessWorker.js create mode 100755 node_modules/jest-worker/build/workers/NodeThreadsWorker.js create mode 100755 node_modules/jest-worker/build/workers/WorkerAbstract.js create mode 100755 node_modules/jest-worker/build/workers/messageParent.js create mode 100755 node_modules/jest-worker/build/workers/processChild.js create mode 100755 node_modules/jest-worker/build/workers/threadChild.js create mode 100755 node_modules/jest-worker/node_modules/supports-color/browser.js create mode 100755 node_modules/jest-worker/node_modules/supports-color/index.js create mode 100755 node_modules/jest-worker/node_modules/supports-color/license create mode 100755 node_modules/jest-worker/node_modules/supports-color/package.json create mode 100755 node_modules/jest-worker/node_modules/supports-color/readme.md create mode 100755 node_modules/jest-worker/package.json create mode 100755 node_modules/jest/LICENSE create mode 100755 node_modules/jest/README.md create mode 100755 node_modules/jest/bin/jest.js create mode 100755 node_modules/jest/build/index.d.ts create mode 100755 node_modules/jest/build/index.js create mode 100755 node_modules/jest/package.json create mode 100755 node_modules/js-tokens/CHANGELOG.md create mode 100755 node_modules/js-tokens/LICENSE create mode 100755 node_modules/js-tokens/README.md create mode 100755 node_modules/js-tokens/index.js create mode 100755 node_modules/js-tokens/package.json create mode 100755 node_modules/js-yaml/CHANGELOG.md create mode 100755 node_modules/js-yaml/LICENSE create mode 100755 node_modules/js-yaml/README.md create mode 100755 node_modules/js-yaml/bin/js-yaml.js create mode 100755 node_modules/js-yaml/dist/js-yaml.js create mode 100755 node_modules/js-yaml/dist/js-yaml.min.js create mode 100755 node_modules/js-yaml/index.js create mode 100755 node_modules/js-yaml/lib/js-yaml.js create mode 100755 node_modules/js-yaml/lib/js-yaml/common.js create mode 100755 node_modules/js-yaml/lib/js-yaml/dumper.js create mode 100755 node_modules/js-yaml/lib/js-yaml/exception.js create mode 100755 node_modules/js-yaml/lib/js-yaml/loader.js create mode 100755 node_modules/js-yaml/lib/js-yaml/mark.js create mode 100755 node_modules/js-yaml/lib/js-yaml/schema.js create mode 100755 node_modules/js-yaml/lib/js-yaml/schema/core.js create mode 100755 node_modules/js-yaml/lib/js-yaml/schema/default_full.js create mode 100755 node_modules/js-yaml/lib/js-yaml/schema/default_safe.js create mode 100755 node_modules/js-yaml/lib/js-yaml/schema/failsafe.js create mode 100755 node_modules/js-yaml/lib/js-yaml/schema/json.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/binary.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/bool.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/float.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/int.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/js/function.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/js/regexp.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/js/undefined.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/map.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/merge.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/null.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/omap.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/pairs.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/seq.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/set.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/str.js create mode 100755 node_modules/js-yaml/lib/js-yaml/type/timestamp.js create mode 100755 node_modules/js-yaml/package.json mode change 100644 => 100755 node_modules/jsdom/LICENSE.txt mode change 100644 => 100755 node_modules/jsdom/README.md mode change 100644 => 100755 node_modules/jsdom/lib/api.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/Window.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/default-stylesheet.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/js-globals.json mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/not-implemented.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/parser/html.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/parser/index.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/parser/xml.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/resources/async-resource-queue.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/resources/no-op-resource-loader.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/resources/request-manager.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/resources/resource-loader.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/level2/style.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/level3/xpath.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/aborting/AbortController-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/attributes.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/attributes/Attr-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/attributes/NamedNodeMap-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/constraint-validation/DefaultConstraintValidation-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/constraint-validation/ValidityState-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/cssom/StyleSheetList-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/custom-elements/CustomElementRegistry-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/documents.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/domparsing/DOMParser-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/domparsing/InnerHTML-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/domparsing/XMLSerializer-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/domparsing/parse5-adapter-serialization.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/CloseEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/CompositionEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/CustomEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/ErrorEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/Event-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/EventModifierMixin-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/FocusEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/HashChangeEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/InputEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/MessageEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/PageTransitionEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/PopStateEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/ProgressEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/StorageEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/TouchEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/events/WheelEvent-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/fetch/Headers-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/fetch/header-list.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/fetch/header-types.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/file-api/Blob-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/file-api/File-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/file-api/FileList-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/file-api/FileReader-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/AbortController.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Attr.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/BarProp.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Blob.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/BlobCallback.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Comment.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/CustomElementConstructor.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Document.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Element.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/EndingType.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Event.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/EventHandlerNonNull.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/EventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/EventListener.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/External.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/File.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/FileList.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/FileReader.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/FormData.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Function.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Headers.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/History.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Location.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/MimeType.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/MutationCallback.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Navigator.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Node.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/NodeList.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/OnBeforeUnloadEventHandlerNonNull.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/OnErrorEventHandlerNonNull.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Performance.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Plugin.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/PluginArray.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Range.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedString.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/SVGBoundingBoxOptions.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/SVGElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/SVGGraphicsElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/SVGNumber.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/SVGSVGElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/SVGStringList.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/SVGTitleElement.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Screen.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ScrollBehavior.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ScrollIntoViewOptions.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ScrollLogicalPosition.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ScrollOptions.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ScrollRestoration.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Selection.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/SelectionMode.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ShadowRoot.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ShadowRootInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ShadowRootMode.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/StaticRange.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/StaticRangeInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Storage.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/StorageEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/StorageEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/StyleSheetList.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/SupportedType.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/Text.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/TextTrackKind.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/TouchEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/ValidityState.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/VisibilityState.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/VoidFunction.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/WebSocket.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/WheelEvent.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/WheelEventInit.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequest.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestEventTarget.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestResponseType.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestUpload.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/XMLSerializer.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/generated/utils.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/agent-factory.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/binary-data.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/create-element.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/custom-elements.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/dates-and-times.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/details.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/document-base-url.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/events.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/focusing.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/form-controls.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/html-constructor.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/http-request.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/internal-constants.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/iterable-weak-set.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/json.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/mutation-observers.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/namespaces.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/node.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/number-and-date-inputs.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/ordered-set.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/selectors.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/shadow-dom.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/strings.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/style-rules.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/stylesheets.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/svg/basic-types.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/text.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/traversal.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/helpers/validate-names.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/hr-time/Performance-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/interfaces.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationObserver-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationRecord-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/named-properties-window.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/navigator/MimeType-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/navigator/MimeTypeArray-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/navigator/Navigator-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/navigator/NavigatorConcurrentHardware-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/navigator/NavigatorCookies-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/navigator/NavigatorID-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/navigator/NavigatorLanguage-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/navigator/NavigatorOnLine-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/navigator/NavigatorPlugins-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/navigator/Plugin-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/navigator/PluginArray-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/node-document-position.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/node-type.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/node.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/CDATASection-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/CharacterData-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/ChildNode-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/Comment-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/DOMImplementation-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/DOMStringMap-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/DOMTokenList-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/DocumentFragment-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/DocumentOrShadowRoot-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/DocumentType-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/ElementCSSInlineStyle-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/ElementContentEditable-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/GlobalEventHandlers-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLAnchorElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLAreaElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLAudioElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLBRElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLBaseElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLBodyElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLCollection-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLDListElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataListElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLDialogElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLDirectoryElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLDivElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLEmbedElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLFieldSetElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLFontElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameSetElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLHRElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadingElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLHtmlElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLHyperlinkElementUtils-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLIFrameElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLLIElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLLabelElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLLegendElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLLinkElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLMapElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLMarqueeElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLMediaElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLMenuElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLMetaElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLMeterElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLModElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLOListElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLObjectElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptGroupElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionsCollection-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLOutputElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLParagraphElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLParamElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLPictureElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLPreElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLProgressElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLQuoteElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLScriptElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLSelectElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLSlotElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLSourceElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLSpanElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLStyleElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCaptionElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCellElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableColElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableRowElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableSectionElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLTextAreaElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLTimeElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLTitleElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLTrackElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLUListElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLUnknownElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/HTMLVideoElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/LinkStyle-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/NodeList-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/NonDocumentTypeChildNode-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/NonElementParentNode-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/ParentNode-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/ProcessingInstruction-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/SVGElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/SVGGraphicsElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/SVGTests-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/SVGTitleElement-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/ShadowRoot-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/Slotable-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/WindowEventHandlers-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/nodes/XMLDocument-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/post-message.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/range/AbstractRange-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/range/Range-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/range/StaticRange-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/range/boundary-point.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/selection/Selection-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedString-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/svg/SVGListBase.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/svg/SVGNumber-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/svg/SVGStringList-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/traversal/NodeIterator-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/traversal/TreeWalker-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/traversal/helpers.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/websockets/WebSocket-impl-browser.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/websockets/WebSocket-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/webstorage/Storage-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/window/BarProp-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/window/External-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/window/History-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/window/Location-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/window/Screen-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/window/SessionHistory.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/window/navigation.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/xhr/FormData-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestEventTarget-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestUpload-impl.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/named-properties-tracker.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/utils.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/virtual-console.js mode change 100644 => 100755 node_modules/jsdom/lib/jsdom/vm-shim.js mode change 100644 => 100755 node_modules/jsdom/package.json create mode 100755 node_modules/jsesc/LICENSE-MIT.txt create mode 100755 node_modules/jsesc/README.md create mode 100755 node_modules/jsesc/bin/jsesc create mode 100755 node_modules/jsesc/jsesc.js create mode 100755 node_modules/jsesc/man/jsesc.1 create mode 100755 node_modules/jsesc/package.json create mode 100755 node_modules/json-parse-even-better-errors/CHANGELOG.md create mode 100755 node_modules/json-parse-even-better-errors/LICENSE.md create mode 100755 node_modules/json-parse-even-better-errors/README.md create mode 100755 node_modules/json-parse-even-better-errors/index.js create mode 100755 node_modules/json-parse-even-better-errors/package.json create mode 100755 node_modules/json5/LICENSE.md create mode 100755 node_modules/json5/README.md create mode 100755 node_modules/json5/dist/index.js create mode 100755 node_modules/json5/dist/index.min.js create mode 100755 node_modules/json5/dist/index.min.mjs create mode 100755 node_modules/json5/dist/index.mjs create mode 100755 node_modules/json5/lib/cli.js create mode 100755 node_modules/json5/lib/index.d.ts create mode 100755 node_modules/json5/lib/index.js create mode 100755 node_modules/json5/lib/parse.d.ts create mode 100755 node_modules/json5/lib/parse.js create mode 100755 node_modules/json5/lib/register.js create mode 100755 node_modules/json5/lib/require.js create mode 100755 node_modules/json5/lib/stringify.d.ts create mode 100755 node_modules/json5/lib/stringify.js create mode 100755 node_modules/json5/lib/unicode.d.ts create mode 100755 node_modules/json5/lib/unicode.js create mode 100755 node_modules/json5/lib/util.d.ts create mode 100755 node_modules/json5/lib/util.js create mode 100755 node_modules/json5/package.json mode change 100644 => 100755 node_modules/justify-text/LICENSE mode change 100644 => 100755 node_modules/justify-text/README.md mode change 100644 => 100755 node_modules/justify-text/index.d.ts mode change 100644 => 100755 node_modules/justify-text/index.js mode change 100644 => 100755 node_modules/justify-text/package.json mode change 100644 => 100755 node_modules/justify-text/test/index.test.js create mode 100755 node_modules/kleur/index.js create mode 100755 node_modules/kleur/kleur.d.ts create mode 100755 node_modules/kleur/license create mode 100755 node_modules/kleur/package.json create mode 100755 node_modules/kleur/readme.md create mode 100755 node_modules/leven/index.d.ts create mode 100755 node_modules/leven/index.js create mode 100755 node_modules/leven/license create mode 100755 node_modules/leven/package.json create mode 100755 node_modules/leven/readme.md mode change 100644 => 100755 node_modules/levn/LICENSE mode change 100644 => 100755 node_modules/levn/README.md mode change 100644 => 100755 node_modules/levn/lib/cast.js mode change 100644 => 100755 node_modules/levn/lib/coerce.js mode change 100644 => 100755 node_modules/levn/lib/index.js mode change 100644 => 100755 node_modules/levn/lib/parse-string.js mode change 100644 => 100755 node_modules/levn/lib/parse.js mode change 100644 => 100755 node_modules/levn/package.json create mode 100755 node_modules/lines-and-columns/LICENSE create mode 100755 node_modules/lines-and-columns/README.md create mode 100755 node_modules/lines-and-columns/build/index.d.ts create mode 100755 node_modules/lines-and-columns/build/index.js create mode 100755 node_modules/lines-and-columns/package.json create mode 100755 node_modules/locate-path/index.d.ts create mode 100755 node_modules/locate-path/index.js create mode 100755 node_modules/locate-path/license create mode 100755 node_modules/locate-path/package.json create mode 100755 node_modules/locate-path/readme.md mode change 100644 => 100755 node_modules/lodash/LICENSE mode change 100644 => 100755 node_modules/lodash/README.md mode change 100644 => 100755 node_modules/lodash/_DataView.js mode change 100644 => 100755 node_modules/lodash/_Hash.js mode change 100644 => 100755 node_modules/lodash/_LazyWrapper.js mode change 100644 => 100755 node_modules/lodash/_ListCache.js mode change 100644 => 100755 node_modules/lodash/_LodashWrapper.js mode change 100644 => 100755 node_modules/lodash/_Map.js mode change 100644 => 100755 node_modules/lodash/_MapCache.js mode change 100644 => 100755 node_modules/lodash/_Promise.js mode change 100644 => 100755 node_modules/lodash/_Set.js mode change 100644 => 100755 node_modules/lodash/_SetCache.js mode change 100644 => 100755 node_modules/lodash/_Stack.js mode change 100644 => 100755 node_modules/lodash/_Symbol.js mode change 100644 => 100755 node_modules/lodash/_Uint8Array.js mode change 100644 => 100755 node_modules/lodash/_WeakMap.js mode change 100644 => 100755 node_modules/lodash/_apply.js mode change 100644 => 100755 node_modules/lodash/_arrayAggregator.js mode change 100644 => 100755 node_modules/lodash/_arrayEach.js mode change 100644 => 100755 node_modules/lodash/_arrayEachRight.js mode change 100644 => 100755 node_modules/lodash/_arrayEvery.js mode change 100644 => 100755 node_modules/lodash/_arrayFilter.js mode change 100644 => 100755 node_modules/lodash/_arrayIncludes.js mode change 100644 => 100755 node_modules/lodash/_arrayIncludesWith.js mode change 100644 => 100755 node_modules/lodash/_arrayLikeKeys.js mode change 100644 => 100755 node_modules/lodash/_arrayMap.js mode change 100644 => 100755 node_modules/lodash/_arrayPush.js mode change 100644 => 100755 node_modules/lodash/_arrayReduce.js mode change 100644 => 100755 node_modules/lodash/_arrayReduceRight.js mode change 100644 => 100755 node_modules/lodash/_arraySample.js mode change 100644 => 100755 node_modules/lodash/_arraySampleSize.js mode change 100644 => 100755 node_modules/lodash/_arrayShuffle.js mode change 100644 => 100755 node_modules/lodash/_arraySome.js mode change 100644 => 100755 node_modules/lodash/_asciiSize.js mode change 100644 => 100755 node_modules/lodash/_asciiToArray.js mode change 100644 => 100755 node_modules/lodash/_asciiWords.js mode change 100644 => 100755 node_modules/lodash/_assignMergeValue.js mode change 100644 => 100755 node_modules/lodash/_assignValue.js mode change 100644 => 100755 node_modules/lodash/_assocIndexOf.js mode change 100644 => 100755 node_modules/lodash/_baseAggregator.js mode change 100644 => 100755 node_modules/lodash/_baseAssign.js mode change 100644 => 100755 node_modules/lodash/_baseAssignIn.js mode change 100644 => 100755 node_modules/lodash/_baseAssignValue.js mode change 100644 => 100755 node_modules/lodash/_baseAt.js mode change 100644 => 100755 node_modules/lodash/_baseClamp.js mode change 100644 => 100755 node_modules/lodash/_baseClone.js mode change 100644 => 100755 node_modules/lodash/_baseConforms.js mode change 100644 => 100755 node_modules/lodash/_baseConformsTo.js mode change 100644 => 100755 node_modules/lodash/_baseCreate.js mode change 100644 => 100755 node_modules/lodash/_baseDelay.js mode change 100644 => 100755 node_modules/lodash/_baseDifference.js mode change 100644 => 100755 node_modules/lodash/_baseEach.js mode change 100644 => 100755 node_modules/lodash/_baseEachRight.js mode change 100644 => 100755 node_modules/lodash/_baseEvery.js mode change 100644 => 100755 node_modules/lodash/_baseExtremum.js mode change 100644 => 100755 node_modules/lodash/_baseFill.js mode change 100644 => 100755 node_modules/lodash/_baseFilter.js mode change 100644 => 100755 node_modules/lodash/_baseFindIndex.js mode change 100644 => 100755 node_modules/lodash/_baseFindKey.js mode change 100644 => 100755 node_modules/lodash/_baseFlatten.js mode change 100644 => 100755 node_modules/lodash/_baseFor.js mode change 100644 => 100755 node_modules/lodash/_baseForOwn.js mode change 100644 => 100755 node_modules/lodash/_baseForOwnRight.js mode change 100644 => 100755 node_modules/lodash/_baseForRight.js mode change 100644 => 100755 node_modules/lodash/_baseFunctions.js mode change 100644 => 100755 node_modules/lodash/_baseGet.js mode change 100644 => 100755 node_modules/lodash/_baseGetAllKeys.js mode change 100644 => 100755 node_modules/lodash/_baseGetTag.js mode change 100644 => 100755 node_modules/lodash/_baseGt.js mode change 100644 => 100755 node_modules/lodash/_baseHas.js mode change 100644 => 100755 node_modules/lodash/_baseHasIn.js mode change 100644 => 100755 node_modules/lodash/_baseInRange.js mode change 100644 => 100755 node_modules/lodash/_baseIndexOf.js mode change 100644 => 100755 node_modules/lodash/_baseIndexOfWith.js mode change 100644 => 100755 node_modules/lodash/_baseIntersection.js mode change 100644 => 100755 node_modules/lodash/_baseInverter.js mode change 100644 => 100755 node_modules/lodash/_baseInvoke.js mode change 100644 => 100755 node_modules/lodash/_baseIsArguments.js mode change 100644 => 100755 node_modules/lodash/_baseIsArrayBuffer.js mode change 100644 => 100755 node_modules/lodash/_baseIsDate.js mode change 100644 => 100755 node_modules/lodash/_baseIsEqual.js mode change 100644 => 100755 node_modules/lodash/_baseIsEqualDeep.js mode change 100644 => 100755 node_modules/lodash/_baseIsMap.js mode change 100644 => 100755 node_modules/lodash/_baseIsMatch.js mode change 100644 => 100755 node_modules/lodash/_baseIsNaN.js mode change 100644 => 100755 node_modules/lodash/_baseIsNative.js mode change 100644 => 100755 node_modules/lodash/_baseIsRegExp.js mode change 100644 => 100755 node_modules/lodash/_baseIsSet.js mode change 100644 => 100755 node_modules/lodash/_baseIsTypedArray.js mode change 100644 => 100755 node_modules/lodash/_baseIteratee.js mode change 100644 => 100755 node_modules/lodash/_baseKeys.js mode change 100644 => 100755 node_modules/lodash/_baseKeysIn.js mode change 100644 => 100755 node_modules/lodash/_baseLodash.js mode change 100644 => 100755 node_modules/lodash/_baseLt.js mode change 100644 => 100755 node_modules/lodash/_baseMap.js mode change 100644 => 100755 node_modules/lodash/_baseMatches.js mode change 100644 => 100755 node_modules/lodash/_baseMatchesProperty.js mode change 100644 => 100755 node_modules/lodash/_baseMean.js mode change 100644 => 100755 node_modules/lodash/_baseMerge.js mode change 100644 => 100755 node_modules/lodash/_baseMergeDeep.js mode change 100644 => 100755 node_modules/lodash/_baseNth.js mode change 100644 => 100755 node_modules/lodash/_baseOrderBy.js mode change 100644 => 100755 node_modules/lodash/_basePick.js mode change 100644 => 100755 node_modules/lodash/_basePickBy.js mode change 100644 => 100755 node_modules/lodash/_baseProperty.js mode change 100644 => 100755 node_modules/lodash/_basePropertyDeep.js mode change 100644 => 100755 node_modules/lodash/_basePropertyOf.js mode change 100644 => 100755 node_modules/lodash/_basePullAll.js mode change 100644 => 100755 node_modules/lodash/_basePullAt.js mode change 100644 => 100755 node_modules/lodash/_baseRandom.js mode change 100644 => 100755 node_modules/lodash/_baseRange.js mode change 100644 => 100755 node_modules/lodash/_baseReduce.js mode change 100644 => 100755 node_modules/lodash/_baseRepeat.js mode change 100644 => 100755 node_modules/lodash/_baseRest.js mode change 100644 => 100755 node_modules/lodash/_baseSample.js mode change 100644 => 100755 node_modules/lodash/_baseSampleSize.js mode change 100644 => 100755 node_modules/lodash/_baseSet.js mode change 100644 => 100755 node_modules/lodash/_baseSetData.js mode change 100644 => 100755 node_modules/lodash/_baseSetToString.js mode change 100644 => 100755 node_modules/lodash/_baseShuffle.js mode change 100644 => 100755 node_modules/lodash/_baseSlice.js mode change 100644 => 100755 node_modules/lodash/_baseSome.js mode change 100644 => 100755 node_modules/lodash/_baseSortBy.js mode change 100644 => 100755 node_modules/lodash/_baseSortedIndex.js mode change 100644 => 100755 node_modules/lodash/_baseSortedIndexBy.js mode change 100644 => 100755 node_modules/lodash/_baseSortedUniq.js mode change 100644 => 100755 node_modules/lodash/_baseSum.js mode change 100644 => 100755 node_modules/lodash/_baseTimes.js mode change 100644 => 100755 node_modules/lodash/_baseToNumber.js mode change 100644 => 100755 node_modules/lodash/_baseToPairs.js mode change 100644 => 100755 node_modules/lodash/_baseToString.js mode change 100644 => 100755 node_modules/lodash/_baseTrim.js mode change 100644 => 100755 node_modules/lodash/_baseUnary.js mode change 100644 => 100755 node_modules/lodash/_baseUniq.js mode change 100644 => 100755 node_modules/lodash/_baseUnset.js mode change 100644 => 100755 node_modules/lodash/_baseUpdate.js mode change 100644 => 100755 node_modules/lodash/_baseValues.js mode change 100644 => 100755 node_modules/lodash/_baseWhile.js mode change 100644 => 100755 node_modules/lodash/_baseWrapperValue.js mode change 100644 => 100755 node_modules/lodash/_baseXor.js mode change 100644 => 100755 node_modules/lodash/_baseZipObject.js mode change 100644 => 100755 node_modules/lodash/_cacheHas.js mode change 100644 => 100755 node_modules/lodash/_castArrayLikeObject.js mode change 100644 => 100755 node_modules/lodash/_castFunction.js mode change 100644 => 100755 node_modules/lodash/_castPath.js mode change 100644 => 100755 node_modules/lodash/_castRest.js mode change 100644 => 100755 node_modules/lodash/_castSlice.js mode change 100644 => 100755 node_modules/lodash/_charsEndIndex.js mode change 100644 => 100755 node_modules/lodash/_charsStartIndex.js mode change 100644 => 100755 node_modules/lodash/_cloneArrayBuffer.js mode change 100644 => 100755 node_modules/lodash/_cloneBuffer.js mode change 100644 => 100755 node_modules/lodash/_cloneDataView.js mode change 100644 => 100755 node_modules/lodash/_cloneRegExp.js mode change 100644 => 100755 node_modules/lodash/_cloneSymbol.js mode change 100644 => 100755 node_modules/lodash/_cloneTypedArray.js mode change 100644 => 100755 node_modules/lodash/_compareAscending.js mode change 100644 => 100755 node_modules/lodash/_compareMultiple.js mode change 100644 => 100755 node_modules/lodash/_composeArgs.js mode change 100644 => 100755 node_modules/lodash/_composeArgsRight.js mode change 100644 => 100755 node_modules/lodash/_copyArray.js mode change 100644 => 100755 node_modules/lodash/_copyObject.js mode change 100644 => 100755 node_modules/lodash/_copySymbols.js mode change 100644 => 100755 node_modules/lodash/_copySymbolsIn.js mode change 100644 => 100755 node_modules/lodash/_coreJsData.js mode change 100644 => 100755 node_modules/lodash/_countHolders.js mode change 100644 => 100755 node_modules/lodash/_createAggregator.js mode change 100644 => 100755 node_modules/lodash/_createAssigner.js mode change 100644 => 100755 node_modules/lodash/_createBaseEach.js mode change 100644 => 100755 node_modules/lodash/_createBaseFor.js mode change 100644 => 100755 node_modules/lodash/_createBind.js mode change 100644 => 100755 node_modules/lodash/_createCaseFirst.js mode change 100644 => 100755 node_modules/lodash/_createCompounder.js mode change 100644 => 100755 node_modules/lodash/_createCtor.js mode change 100644 => 100755 node_modules/lodash/_createCurry.js mode change 100644 => 100755 node_modules/lodash/_createFind.js mode change 100644 => 100755 node_modules/lodash/_createFlow.js mode change 100644 => 100755 node_modules/lodash/_createHybrid.js mode change 100644 => 100755 node_modules/lodash/_createInverter.js mode change 100644 => 100755 node_modules/lodash/_createMathOperation.js mode change 100644 => 100755 node_modules/lodash/_createOver.js mode change 100644 => 100755 node_modules/lodash/_createPadding.js mode change 100644 => 100755 node_modules/lodash/_createPartial.js mode change 100644 => 100755 node_modules/lodash/_createRange.js mode change 100644 => 100755 node_modules/lodash/_createRecurry.js mode change 100644 => 100755 node_modules/lodash/_createRelationalOperation.js mode change 100644 => 100755 node_modules/lodash/_createRound.js mode change 100644 => 100755 node_modules/lodash/_createSet.js mode change 100644 => 100755 node_modules/lodash/_createToPairs.js mode change 100644 => 100755 node_modules/lodash/_createWrap.js mode change 100644 => 100755 node_modules/lodash/_customDefaultsAssignIn.js mode change 100644 => 100755 node_modules/lodash/_customDefaultsMerge.js mode change 100644 => 100755 node_modules/lodash/_customOmitClone.js mode change 100644 => 100755 node_modules/lodash/_deburrLetter.js mode change 100644 => 100755 node_modules/lodash/_defineProperty.js mode change 100644 => 100755 node_modules/lodash/_equalArrays.js mode change 100644 => 100755 node_modules/lodash/_equalByTag.js mode change 100644 => 100755 node_modules/lodash/_equalObjects.js mode change 100644 => 100755 node_modules/lodash/_escapeHtmlChar.js mode change 100644 => 100755 node_modules/lodash/_escapeStringChar.js mode change 100644 => 100755 node_modules/lodash/_flatRest.js mode change 100644 => 100755 node_modules/lodash/_freeGlobal.js mode change 100644 => 100755 node_modules/lodash/_getAllKeys.js mode change 100644 => 100755 node_modules/lodash/_getAllKeysIn.js mode change 100644 => 100755 node_modules/lodash/_getData.js mode change 100644 => 100755 node_modules/lodash/_getFuncName.js mode change 100644 => 100755 node_modules/lodash/_getHolder.js mode change 100644 => 100755 node_modules/lodash/_getMapData.js mode change 100644 => 100755 node_modules/lodash/_getMatchData.js mode change 100644 => 100755 node_modules/lodash/_getNative.js mode change 100644 => 100755 node_modules/lodash/_getPrototype.js mode change 100644 => 100755 node_modules/lodash/_getRawTag.js mode change 100644 => 100755 node_modules/lodash/_getSymbols.js mode change 100644 => 100755 node_modules/lodash/_getSymbolsIn.js mode change 100644 => 100755 node_modules/lodash/_getTag.js mode change 100644 => 100755 node_modules/lodash/_getValue.js mode change 100644 => 100755 node_modules/lodash/_getView.js mode change 100644 => 100755 node_modules/lodash/_getWrapDetails.js mode change 100644 => 100755 node_modules/lodash/_hasPath.js mode change 100644 => 100755 node_modules/lodash/_hasUnicode.js mode change 100644 => 100755 node_modules/lodash/_hasUnicodeWord.js mode change 100644 => 100755 node_modules/lodash/_hashClear.js mode change 100644 => 100755 node_modules/lodash/_hashDelete.js mode change 100644 => 100755 node_modules/lodash/_hashGet.js mode change 100644 => 100755 node_modules/lodash/_hashHas.js mode change 100644 => 100755 node_modules/lodash/_hashSet.js mode change 100644 => 100755 node_modules/lodash/_initCloneArray.js mode change 100644 => 100755 node_modules/lodash/_initCloneByTag.js mode change 100644 => 100755 node_modules/lodash/_initCloneObject.js mode change 100644 => 100755 node_modules/lodash/_insertWrapDetails.js mode change 100644 => 100755 node_modules/lodash/_isFlattenable.js mode change 100644 => 100755 node_modules/lodash/_isIndex.js mode change 100644 => 100755 node_modules/lodash/_isIterateeCall.js mode change 100644 => 100755 node_modules/lodash/_isKey.js mode change 100644 => 100755 node_modules/lodash/_isKeyable.js mode change 100644 => 100755 node_modules/lodash/_isLaziable.js mode change 100644 => 100755 node_modules/lodash/_isMaskable.js mode change 100644 => 100755 node_modules/lodash/_isMasked.js mode change 100644 => 100755 node_modules/lodash/_isPrototype.js mode change 100644 => 100755 node_modules/lodash/_isStrictComparable.js mode change 100644 => 100755 node_modules/lodash/_iteratorToArray.js mode change 100644 => 100755 node_modules/lodash/_lazyClone.js mode change 100644 => 100755 node_modules/lodash/_lazyReverse.js mode change 100644 => 100755 node_modules/lodash/_lazyValue.js mode change 100644 => 100755 node_modules/lodash/_listCacheClear.js mode change 100644 => 100755 node_modules/lodash/_listCacheDelete.js mode change 100644 => 100755 node_modules/lodash/_listCacheGet.js mode change 100644 => 100755 node_modules/lodash/_listCacheHas.js mode change 100644 => 100755 node_modules/lodash/_listCacheSet.js mode change 100644 => 100755 node_modules/lodash/_mapCacheClear.js mode change 100644 => 100755 node_modules/lodash/_mapCacheDelete.js mode change 100644 => 100755 node_modules/lodash/_mapCacheGet.js mode change 100644 => 100755 node_modules/lodash/_mapCacheHas.js mode change 100644 => 100755 node_modules/lodash/_mapCacheSet.js mode change 100644 => 100755 node_modules/lodash/_mapToArray.js mode change 100644 => 100755 node_modules/lodash/_matchesStrictComparable.js mode change 100644 => 100755 node_modules/lodash/_memoizeCapped.js mode change 100644 => 100755 node_modules/lodash/_mergeData.js mode change 100644 => 100755 node_modules/lodash/_metaMap.js mode change 100644 => 100755 node_modules/lodash/_nativeCreate.js mode change 100644 => 100755 node_modules/lodash/_nativeKeys.js mode change 100644 => 100755 node_modules/lodash/_nativeKeysIn.js mode change 100644 => 100755 node_modules/lodash/_nodeUtil.js mode change 100644 => 100755 node_modules/lodash/_objectToString.js mode change 100644 => 100755 node_modules/lodash/_overArg.js mode change 100644 => 100755 node_modules/lodash/_overRest.js mode change 100644 => 100755 node_modules/lodash/_parent.js mode change 100644 => 100755 node_modules/lodash/_reEscape.js mode change 100644 => 100755 node_modules/lodash/_reEvaluate.js mode change 100644 => 100755 node_modules/lodash/_reInterpolate.js mode change 100644 => 100755 node_modules/lodash/_realNames.js mode change 100644 => 100755 node_modules/lodash/_reorder.js mode change 100644 => 100755 node_modules/lodash/_replaceHolders.js mode change 100644 => 100755 node_modules/lodash/_root.js mode change 100644 => 100755 node_modules/lodash/_safeGet.js mode change 100644 => 100755 node_modules/lodash/_setCacheAdd.js mode change 100644 => 100755 node_modules/lodash/_setCacheHas.js mode change 100644 => 100755 node_modules/lodash/_setData.js mode change 100644 => 100755 node_modules/lodash/_setToArray.js mode change 100644 => 100755 node_modules/lodash/_setToPairs.js mode change 100644 => 100755 node_modules/lodash/_setToString.js mode change 100644 => 100755 node_modules/lodash/_setWrapToString.js mode change 100644 => 100755 node_modules/lodash/_shortOut.js mode change 100644 => 100755 node_modules/lodash/_shuffleSelf.js mode change 100644 => 100755 node_modules/lodash/_stackClear.js mode change 100644 => 100755 node_modules/lodash/_stackDelete.js mode change 100644 => 100755 node_modules/lodash/_stackGet.js mode change 100644 => 100755 node_modules/lodash/_stackHas.js mode change 100644 => 100755 node_modules/lodash/_stackSet.js mode change 100644 => 100755 node_modules/lodash/_strictIndexOf.js mode change 100644 => 100755 node_modules/lodash/_strictLastIndexOf.js mode change 100644 => 100755 node_modules/lodash/_stringSize.js mode change 100644 => 100755 node_modules/lodash/_stringToArray.js mode change 100644 => 100755 node_modules/lodash/_stringToPath.js mode change 100644 => 100755 node_modules/lodash/_toKey.js mode change 100644 => 100755 node_modules/lodash/_toSource.js mode change 100644 => 100755 node_modules/lodash/_trimmedEndIndex.js mode change 100644 => 100755 node_modules/lodash/_unescapeHtmlChar.js mode change 100644 => 100755 node_modules/lodash/_unicodeSize.js mode change 100644 => 100755 node_modules/lodash/_unicodeToArray.js mode change 100644 => 100755 node_modules/lodash/_unicodeWords.js mode change 100644 => 100755 node_modules/lodash/_updateWrapDetails.js mode change 100644 => 100755 node_modules/lodash/_wrapperClone.js mode change 100644 => 100755 node_modules/lodash/add.js mode change 100644 => 100755 node_modules/lodash/after.js mode change 100644 => 100755 node_modules/lodash/array.js mode change 100644 => 100755 node_modules/lodash/ary.js mode change 100644 => 100755 node_modules/lodash/assign.js mode change 100644 => 100755 node_modules/lodash/assignIn.js mode change 100644 => 100755 node_modules/lodash/assignInWith.js mode change 100644 => 100755 node_modules/lodash/assignWith.js mode change 100644 => 100755 node_modules/lodash/at.js mode change 100644 => 100755 node_modules/lodash/attempt.js mode change 100644 => 100755 node_modules/lodash/before.js mode change 100644 => 100755 node_modules/lodash/bind.js mode change 100644 => 100755 node_modules/lodash/bindAll.js mode change 100644 => 100755 node_modules/lodash/bindKey.js mode change 100644 => 100755 node_modules/lodash/camelCase.js mode change 100644 => 100755 node_modules/lodash/capitalize.js mode change 100644 => 100755 node_modules/lodash/castArray.js mode change 100644 => 100755 node_modules/lodash/ceil.js mode change 100644 => 100755 node_modules/lodash/chain.js mode change 100644 => 100755 node_modules/lodash/chunk.js mode change 100644 => 100755 node_modules/lodash/clamp.js mode change 100644 => 100755 node_modules/lodash/clone.js mode change 100644 => 100755 node_modules/lodash/cloneDeep.js mode change 100644 => 100755 node_modules/lodash/cloneDeepWith.js mode change 100644 => 100755 node_modules/lodash/cloneWith.js mode change 100644 => 100755 node_modules/lodash/collection.js mode change 100644 => 100755 node_modules/lodash/commit.js mode change 100644 => 100755 node_modules/lodash/compact.js mode change 100644 => 100755 node_modules/lodash/concat.js mode change 100644 => 100755 node_modules/lodash/cond.js mode change 100644 => 100755 node_modules/lodash/conforms.js mode change 100644 => 100755 node_modules/lodash/conformsTo.js mode change 100644 => 100755 node_modules/lodash/constant.js mode change 100644 => 100755 node_modules/lodash/core.js mode change 100644 => 100755 node_modules/lodash/core.min.js mode change 100644 => 100755 node_modules/lodash/countBy.js mode change 100644 => 100755 node_modules/lodash/create.js mode change 100644 => 100755 node_modules/lodash/curry.js mode change 100644 => 100755 node_modules/lodash/curryRight.js mode change 100644 => 100755 node_modules/lodash/date.js mode change 100644 => 100755 node_modules/lodash/debounce.js mode change 100644 => 100755 node_modules/lodash/deburr.js mode change 100644 => 100755 node_modules/lodash/defaultTo.js mode change 100644 => 100755 node_modules/lodash/defaults.js mode change 100644 => 100755 node_modules/lodash/defaultsDeep.js mode change 100644 => 100755 node_modules/lodash/defer.js mode change 100644 => 100755 node_modules/lodash/delay.js mode change 100644 => 100755 node_modules/lodash/difference.js mode change 100644 => 100755 node_modules/lodash/differenceBy.js mode change 100644 => 100755 node_modules/lodash/differenceWith.js mode change 100644 => 100755 node_modules/lodash/divide.js mode change 100644 => 100755 node_modules/lodash/drop.js mode change 100644 => 100755 node_modules/lodash/dropRight.js mode change 100644 => 100755 node_modules/lodash/dropRightWhile.js mode change 100644 => 100755 node_modules/lodash/dropWhile.js mode change 100644 => 100755 node_modules/lodash/each.js mode change 100644 => 100755 node_modules/lodash/eachRight.js mode change 100644 => 100755 node_modules/lodash/endsWith.js mode change 100644 => 100755 node_modules/lodash/entries.js mode change 100644 => 100755 node_modules/lodash/entriesIn.js mode change 100644 => 100755 node_modules/lodash/eq.js mode change 100644 => 100755 node_modules/lodash/escape.js mode change 100644 => 100755 node_modules/lodash/escapeRegExp.js mode change 100644 => 100755 node_modules/lodash/every.js mode change 100644 => 100755 node_modules/lodash/extend.js mode change 100644 => 100755 node_modules/lodash/extendWith.js mode change 100644 => 100755 node_modules/lodash/fill.js mode change 100644 => 100755 node_modules/lodash/filter.js mode change 100644 => 100755 node_modules/lodash/find.js mode change 100644 => 100755 node_modules/lodash/findIndex.js mode change 100644 => 100755 node_modules/lodash/findKey.js mode change 100644 => 100755 node_modules/lodash/findLast.js mode change 100644 => 100755 node_modules/lodash/findLastIndex.js mode change 100644 => 100755 node_modules/lodash/findLastKey.js mode change 100644 => 100755 node_modules/lodash/first.js mode change 100644 => 100755 node_modules/lodash/flake.lock mode change 100644 => 100755 node_modules/lodash/flake.nix mode change 100644 => 100755 node_modules/lodash/flatMap.js mode change 100644 => 100755 node_modules/lodash/flatMapDeep.js mode change 100644 => 100755 node_modules/lodash/flatMapDepth.js mode change 100644 => 100755 node_modules/lodash/flatten.js mode change 100644 => 100755 node_modules/lodash/flattenDeep.js mode change 100644 => 100755 node_modules/lodash/flattenDepth.js mode change 100644 => 100755 node_modules/lodash/flip.js mode change 100644 => 100755 node_modules/lodash/floor.js mode change 100644 => 100755 node_modules/lodash/flow.js mode change 100644 => 100755 node_modules/lodash/flowRight.js mode change 100644 => 100755 node_modules/lodash/forEach.js mode change 100644 => 100755 node_modules/lodash/forEachRight.js mode change 100644 => 100755 node_modules/lodash/forIn.js mode change 100644 => 100755 node_modules/lodash/forInRight.js mode change 100644 => 100755 node_modules/lodash/forOwn.js mode change 100644 => 100755 node_modules/lodash/forOwnRight.js mode change 100644 => 100755 node_modules/lodash/fp.js mode change 100644 => 100755 node_modules/lodash/fp/F.js mode change 100644 => 100755 node_modules/lodash/fp/T.js mode change 100644 => 100755 node_modules/lodash/fp/__.js mode change 100644 => 100755 node_modules/lodash/fp/_baseConvert.js mode change 100644 => 100755 node_modules/lodash/fp/_convertBrowser.js mode change 100644 => 100755 node_modules/lodash/fp/_falseOptions.js mode change 100644 => 100755 node_modules/lodash/fp/_mapping.js mode change 100644 => 100755 node_modules/lodash/fp/_util.js mode change 100644 => 100755 node_modules/lodash/fp/add.js mode change 100644 => 100755 node_modules/lodash/fp/after.js mode change 100644 => 100755 node_modules/lodash/fp/all.js mode change 100644 => 100755 node_modules/lodash/fp/allPass.js mode change 100644 => 100755 node_modules/lodash/fp/always.js mode change 100644 => 100755 node_modules/lodash/fp/any.js mode change 100644 => 100755 node_modules/lodash/fp/anyPass.js mode change 100644 => 100755 node_modules/lodash/fp/apply.js mode change 100644 => 100755 node_modules/lodash/fp/array.js mode change 100644 => 100755 node_modules/lodash/fp/ary.js mode change 100644 => 100755 node_modules/lodash/fp/assign.js mode change 100644 => 100755 node_modules/lodash/fp/assignAll.js mode change 100644 => 100755 node_modules/lodash/fp/assignAllWith.js mode change 100644 => 100755 node_modules/lodash/fp/assignIn.js mode change 100644 => 100755 node_modules/lodash/fp/assignInAll.js mode change 100644 => 100755 node_modules/lodash/fp/assignInAllWith.js mode change 100644 => 100755 node_modules/lodash/fp/assignInWith.js mode change 100644 => 100755 node_modules/lodash/fp/assignWith.js mode change 100644 => 100755 node_modules/lodash/fp/assoc.js mode change 100644 => 100755 node_modules/lodash/fp/assocPath.js mode change 100644 => 100755 node_modules/lodash/fp/at.js mode change 100644 => 100755 node_modules/lodash/fp/attempt.js mode change 100644 => 100755 node_modules/lodash/fp/before.js mode change 100644 => 100755 node_modules/lodash/fp/bind.js mode change 100644 => 100755 node_modules/lodash/fp/bindAll.js mode change 100644 => 100755 node_modules/lodash/fp/bindKey.js mode change 100644 => 100755 node_modules/lodash/fp/camelCase.js mode change 100644 => 100755 node_modules/lodash/fp/capitalize.js mode change 100644 => 100755 node_modules/lodash/fp/castArray.js mode change 100644 => 100755 node_modules/lodash/fp/ceil.js mode change 100644 => 100755 node_modules/lodash/fp/chain.js mode change 100644 => 100755 node_modules/lodash/fp/chunk.js mode change 100644 => 100755 node_modules/lodash/fp/clamp.js mode change 100644 => 100755 node_modules/lodash/fp/clone.js mode change 100644 => 100755 node_modules/lodash/fp/cloneDeep.js mode change 100644 => 100755 node_modules/lodash/fp/cloneDeepWith.js mode change 100644 => 100755 node_modules/lodash/fp/cloneWith.js mode change 100644 => 100755 node_modules/lodash/fp/collection.js mode change 100644 => 100755 node_modules/lodash/fp/commit.js mode change 100644 => 100755 node_modules/lodash/fp/compact.js mode change 100644 => 100755 node_modules/lodash/fp/complement.js mode change 100644 => 100755 node_modules/lodash/fp/compose.js mode change 100644 => 100755 node_modules/lodash/fp/concat.js mode change 100644 => 100755 node_modules/lodash/fp/cond.js mode change 100644 => 100755 node_modules/lodash/fp/conforms.js mode change 100644 => 100755 node_modules/lodash/fp/conformsTo.js mode change 100644 => 100755 node_modules/lodash/fp/constant.js mode change 100644 => 100755 node_modules/lodash/fp/contains.js mode change 100644 => 100755 node_modules/lodash/fp/convert.js mode change 100644 => 100755 node_modules/lodash/fp/countBy.js mode change 100644 => 100755 node_modules/lodash/fp/create.js mode change 100644 => 100755 node_modules/lodash/fp/curry.js mode change 100644 => 100755 node_modules/lodash/fp/curryN.js mode change 100644 => 100755 node_modules/lodash/fp/curryRight.js mode change 100644 => 100755 node_modules/lodash/fp/curryRightN.js mode change 100644 => 100755 node_modules/lodash/fp/date.js mode change 100644 => 100755 node_modules/lodash/fp/debounce.js mode change 100644 => 100755 node_modules/lodash/fp/deburr.js mode change 100644 => 100755 node_modules/lodash/fp/defaultTo.js mode change 100644 => 100755 node_modules/lodash/fp/defaults.js mode change 100644 => 100755 node_modules/lodash/fp/defaultsAll.js mode change 100644 => 100755 node_modules/lodash/fp/defaultsDeep.js mode change 100644 => 100755 node_modules/lodash/fp/defaultsDeepAll.js mode change 100644 => 100755 node_modules/lodash/fp/defer.js mode change 100644 => 100755 node_modules/lodash/fp/delay.js mode change 100644 => 100755 node_modules/lodash/fp/difference.js mode change 100644 => 100755 node_modules/lodash/fp/differenceBy.js mode change 100644 => 100755 node_modules/lodash/fp/differenceWith.js mode change 100644 => 100755 node_modules/lodash/fp/dissoc.js mode change 100644 => 100755 node_modules/lodash/fp/dissocPath.js mode change 100644 => 100755 node_modules/lodash/fp/divide.js mode change 100644 => 100755 node_modules/lodash/fp/drop.js mode change 100644 => 100755 node_modules/lodash/fp/dropLast.js mode change 100644 => 100755 node_modules/lodash/fp/dropLastWhile.js mode change 100644 => 100755 node_modules/lodash/fp/dropRight.js mode change 100644 => 100755 node_modules/lodash/fp/dropRightWhile.js mode change 100644 => 100755 node_modules/lodash/fp/dropWhile.js mode change 100644 => 100755 node_modules/lodash/fp/each.js mode change 100644 => 100755 node_modules/lodash/fp/eachRight.js mode change 100644 => 100755 node_modules/lodash/fp/endsWith.js mode change 100644 => 100755 node_modules/lodash/fp/entries.js mode change 100644 => 100755 node_modules/lodash/fp/entriesIn.js mode change 100644 => 100755 node_modules/lodash/fp/eq.js mode change 100644 => 100755 node_modules/lodash/fp/equals.js mode change 100644 => 100755 node_modules/lodash/fp/escape.js mode change 100644 => 100755 node_modules/lodash/fp/escapeRegExp.js mode change 100644 => 100755 node_modules/lodash/fp/every.js mode change 100644 => 100755 node_modules/lodash/fp/extend.js mode change 100644 => 100755 node_modules/lodash/fp/extendAll.js mode change 100644 => 100755 node_modules/lodash/fp/extendAllWith.js mode change 100644 => 100755 node_modules/lodash/fp/extendWith.js mode change 100644 => 100755 node_modules/lodash/fp/fill.js mode change 100644 => 100755 node_modules/lodash/fp/filter.js mode change 100644 => 100755 node_modules/lodash/fp/find.js mode change 100644 => 100755 node_modules/lodash/fp/findFrom.js mode change 100644 => 100755 node_modules/lodash/fp/findIndex.js mode change 100644 => 100755 node_modules/lodash/fp/findIndexFrom.js mode change 100644 => 100755 node_modules/lodash/fp/findKey.js mode change 100644 => 100755 node_modules/lodash/fp/findLast.js mode change 100644 => 100755 node_modules/lodash/fp/findLastFrom.js mode change 100644 => 100755 node_modules/lodash/fp/findLastIndex.js mode change 100644 => 100755 node_modules/lodash/fp/findLastIndexFrom.js mode change 100644 => 100755 node_modules/lodash/fp/findLastKey.js mode change 100644 => 100755 node_modules/lodash/fp/first.js mode change 100644 => 100755 node_modules/lodash/fp/flatMap.js mode change 100644 => 100755 node_modules/lodash/fp/flatMapDeep.js mode change 100644 => 100755 node_modules/lodash/fp/flatMapDepth.js mode change 100644 => 100755 node_modules/lodash/fp/flatten.js mode change 100644 => 100755 node_modules/lodash/fp/flattenDeep.js mode change 100644 => 100755 node_modules/lodash/fp/flattenDepth.js mode change 100644 => 100755 node_modules/lodash/fp/flip.js mode change 100644 => 100755 node_modules/lodash/fp/floor.js mode change 100644 => 100755 node_modules/lodash/fp/flow.js mode change 100644 => 100755 node_modules/lodash/fp/flowRight.js mode change 100644 => 100755 node_modules/lodash/fp/forEach.js mode change 100644 => 100755 node_modules/lodash/fp/forEachRight.js mode change 100644 => 100755 node_modules/lodash/fp/forIn.js mode change 100644 => 100755 node_modules/lodash/fp/forInRight.js mode change 100644 => 100755 node_modules/lodash/fp/forOwn.js mode change 100644 => 100755 node_modules/lodash/fp/forOwnRight.js mode change 100644 => 100755 node_modules/lodash/fp/fromPairs.js mode change 100644 => 100755 node_modules/lodash/fp/function.js mode change 100644 => 100755 node_modules/lodash/fp/functions.js mode change 100644 => 100755 node_modules/lodash/fp/functionsIn.js mode change 100644 => 100755 node_modules/lodash/fp/get.js mode change 100644 => 100755 node_modules/lodash/fp/getOr.js mode change 100644 => 100755 node_modules/lodash/fp/groupBy.js mode change 100644 => 100755 node_modules/lodash/fp/gt.js mode change 100644 => 100755 node_modules/lodash/fp/gte.js mode change 100644 => 100755 node_modules/lodash/fp/has.js mode change 100644 => 100755 node_modules/lodash/fp/hasIn.js mode change 100644 => 100755 node_modules/lodash/fp/head.js mode change 100644 => 100755 node_modules/lodash/fp/identical.js mode change 100644 => 100755 node_modules/lodash/fp/identity.js mode change 100644 => 100755 node_modules/lodash/fp/inRange.js mode change 100644 => 100755 node_modules/lodash/fp/includes.js mode change 100644 => 100755 node_modules/lodash/fp/includesFrom.js mode change 100644 => 100755 node_modules/lodash/fp/indexBy.js mode change 100644 => 100755 node_modules/lodash/fp/indexOf.js mode change 100644 => 100755 node_modules/lodash/fp/indexOfFrom.js mode change 100644 => 100755 node_modules/lodash/fp/init.js mode change 100644 => 100755 node_modules/lodash/fp/initial.js mode change 100644 => 100755 node_modules/lodash/fp/intersection.js mode change 100644 => 100755 node_modules/lodash/fp/intersectionBy.js mode change 100644 => 100755 node_modules/lodash/fp/intersectionWith.js mode change 100644 => 100755 node_modules/lodash/fp/invert.js mode change 100644 => 100755 node_modules/lodash/fp/invertBy.js mode change 100644 => 100755 node_modules/lodash/fp/invertObj.js mode change 100644 => 100755 node_modules/lodash/fp/invoke.js mode change 100644 => 100755 node_modules/lodash/fp/invokeArgs.js mode change 100644 => 100755 node_modules/lodash/fp/invokeArgsMap.js mode change 100644 => 100755 node_modules/lodash/fp/invokeMap.js mode change 100644 => 100755 node_modules/lodash/fp/isArguments.js mode change 100644 => 100755 node_modules/lodash/fp/isArray.js mode change 100644 => 100755 node_modules/lodash/fp/isArrayBuffer.js mode change 100644 => 100755 node_modules/lodash/fp/isArrayLike.js mode change 100644 => 100755 node_modules/lodash/fp/isArrayLikeObject.js mode change 100644 => 100755 node_modules/lodash/fp/isBoolean.js mode change 100644 => 100755 node_modules/lodash/fp/isBuffer.js mode change 100644 => 100755 node_modules/lodash/fp/isDate.js mode change 100644 => 100755 node_modules/lodash/fp/isElement.js mode change 100644 => 100755 node_modules/lodash/fp/isEmpty.js mode change 100644 => 100755 node_modules/lodash/fp/isEqual.js mode change 100644 => 100755 node_modules/lodash/fp/isEqualWith.js mode change 100644 => 100755 node_modules/lodash/fp/isError.js mode change 100644 => 100755 node_modules/lodash/fp/isFinite.js mode change 100644 => 100755 node_modules/lodash/fp/isFunction.js mode change 100644 => 100755 node_modules/lodash/fp/isInteger.js mode change 100644 => 100755 node_modules/lodash/fp/isLength.js mode change 100644 => 100755 node_modules/lodash/fp/isMap.js mode change 100644 => 100755 node_modules/lodash/fp/isMatch.js mode change 100644 => 100755 node_modules/lodash/fp/isMatchWith.js mode change 100644 => 100755 node_modules/lodash/fp/isNaN.js mode change 100644 => 100755 node_modules/lodash/fp/isNative.js mode change 100644 => 100755 node_modules/lodash/fp/isNil.js mode change 100644 => 100755 node_modules/lodash/fp/isNull.js mode change 100644 => 100755 node_modules/lodash/fp/isNumber.js mode change 100644 => 100755 node_modules/lodash/fp/isObject.js mode change 100644 => 100755 node_modules/lodash/fp/isObjectLike.js mode change 100644 => 100755 node_modules/lodash/fp/isPlainObject.js mode change 100644 => 100755 node_modules/lodash/fp/isRegExp.js mode change 100644 => 100755 node_modules/lodash/fp/isSafeInteger.js mode change 100644 => 100755 node_modules/lodash/fp/isSet.js mode change 100644 => 100755 node_modules/lodash/fp/isString.js mode change 100644 => 100755 node_modules/lodash/fp/isSymbol.js mode change 100644 => 100755 node_modules/lodash/fp/isTypedArray.js mode change 100644 => 100755 node_modules/lodash/fp/isUndefined.js mode change 100644 => 100755 node_modules/lodash/fp/isWeakMap.js mode change 100644 => 100755 node_modules/lodash/fp/isWeakSet.js mode change 100644 => 100755 node_modules/lodash/fp/iteratee.js mode change 100644 => 100755 node_modules/lodash/fp/join.js mode change 100644 => 100755 node_modules/lodash/fp/juxt.js mode change 100644 => 100755 node_modules/lodash/fp/kebabCase.js mode change 100644 => 100755 node_modules/lodash/fp/keyBy.js mode change 100644 => 100755 node_modules/lodash/fp/keys.js mode change 100644 => 100755 node_modules/lodash/fp/keysIn.js mode change 100644 => 100755 node_modules/lodash/fp/lang.js mode change 100644 => 100755 node_modules/lodash/fp/last.js mode change 100644 => 100755 node_modules/lodash/fp/lastIndexOf.js mode change 100644 => 100755 node_modules/lodash/fp/lastIndexOfFrom.js mode change 100644 => 100755 node_modules/lodash/fp/lowerCase.js mode change 100644 => 100755 node_modules/lodash/fp/lowerFirst.js mode change 100644 => 100755 node_modules/lodash/fp/lt.js mode change 100644 => 100755 node_modules/lodash/fp/lte.js mode change 100644 => 100755 node_modules/lodash/fp/map.js mode change 100644 => 100755 node_modules/lodash/fp/mapKeys.js mode change 100644 => 100755 node_modules/lodash/fp/mapValues.js mode change 100644 => 100755 node_modules/lodash/fp/matches.js mode change 100644 => 100755 node_modules/lodash/fp/matchesProperty.js mode change 100644 => 100755 node_modules/lodash/fp/math.js mode change 100644 => 100755 node_modules/lodash/fp/max.js mode change 100644 => 100755 node_modules/lodash/fp/maxBy.js mode change 100644 => 100755 node_modules/lodash/fp/mean.js mode change 100644 => 100755 node_modules/lodash/fp/meanBy.js mode change 100644 => 100755 node_modules/lodash/fp/memoize.js mode change 100644 => 100755 node_modules/lodash/fp/merge.js mode change 100644 => 100755 node_modules/lodash/fp/mergeAll.js mode change 100644 => 100755 node_modules/lodash/fp/mergeAllWith.js mode change 100644 => 100755 node_modules/lodash/fp/mergeWith.js mode change 100644 => 100755 node_modules/lodash/fp/method.js mode change 100644 => 100755 node_modules/lodash/fp/methodOf.js mode change 100644 => 100755 node_modules/lodash/fp/min.js mode change 100644 => 100755 node_modules/lodash/fp/minBy.js mode change 100644 => 100755 node_modules/lodash/fp/mixin.js mode change 100644 => 100755 node_modules/lodash/fp/multiply.js mode change 100644 => 100755 node_modules/lodash/fp/nAry.js mode change 100644 => 100755 node_modules/lodash/fp/negate.js mode change 100644 => 100755 node_modules/lodash/fp/next.js mode change 100644 => 100755 node_modules/lodash/fp/noop.js mode change 100644 => 100755 node_modules/lodash/fp/now.js mode change 100644 => 100755 node_modules/lodash/fp/nth.js mode change 100644 => 100755 node_modules/lodash/fp/nthArg.js mode change 100644 => 100755 node_modules/lodash/fp/number.js mode change 100644 => 100755 node_modules/lodash/fp/object.js mode change 100644 => 100755 node_modules/lodash/fp/omit.js mode change 100644 => 100755 node_modules/lodash/fp/omitAll.js mode change 100644 => 100755 node_modules/lodash/fp/omitBy.js mode change 100644 => 100755 node_modules/lodash/fp/once.js mode change 100644 => 100755 node_modules/lodash/fp/orderBy.js mode change 100644 => 100755 node_modules/lodash/fp/over.js mode change 100644 => 100755 node_modules/lodash/fp/overArgs.js mode change 100644 => 100755 node_modules/lodash/fp/overEvery.js mode change 100644 => 100755 node_modules/lodash/fp/overSome.js mode change 100644 => 100755 node_modules/lodash/fp/pad.js mode change 100644 => 100755 node_modules/lodash/fp/padChars.js mode change 100644 => 100755 node_modules/lodash/fp/padCharsEnd.js mode change 100644 => 100755 node_modules/lodash/fp/padCharsStart.js mode change 100644 => 100755 node_modules/lodash/fp/padEnd.js mode change 100644 => 100755 node_modules/lodash/fp/padStart.js mode change 100644 => 100755 node_modules/lodash/fp/parseInt.js mode change 100644 => 100755 node_modules/lodash/fp/partial.js mode change 100644 => 100755 node_modules/lodash/fp/partialRight.js mode change 100644 => 100755 node_modules/lodash/fp/partition.js mode change 100644 => 100755 node_modules/lodash/fp/path.js mode change 100644 => 100755 node_modules/lodash/fp/pathEq.js mode change 100644 => 100755 node_modules/lodash/fp/pathOr.js mode change 100644 => 100755 node_modules/lodash/fp/paths.js mode change 100644 => 100755 node_modules/lodash/fp/pick.js mode change 100644 => 100755 node_modules/lodash/fp/pickAll.js mode change 100644 => 100755 node_modules/lodash/fp/pickBy.js mode change 100644 => 100755 node_modules/lodash/fp/pipe.js mode change 100644 => 100755 node_modules/lodash/fp/placeholder.js mode change 100644 => 100755 node_modules/lodash/fp/plant.js mode change 100644 => 100755 node_modules/lodash/fp/pluck.js mode change 100644 => 100755 node_modules/lodash/fp/prop.js mode change 100644 => 100755 node_modules/lodash/fp/propEq.js mode change 100644 => 100755 node_modules/lodash/fp/propOr.js mode change 100644 => 100755 node_modules/lodash/fp/property.js mode change 100644 => 100755 node_modules/lodash/fp/propertyOf.js mode change 100644 => 100755 node_modules/lodash/fp/props.js mode change 100644 => 100755 node_modules/lodash/fp/pull.js mode change 100644 => 100755 node_modules/lodash/fp/pullAll.js mode change 100644 => 100755 node_modules/lodash/fp/pullAllBy.js mode change 100644 => 100755 node_modules/lodash/fp/pullAllWith.js mode change 100644 => 100755 node_modules/lodash/fp/pullAt.js mode change 100644 => 100755 node_modules/lodash/fp/random.js mode change 100644 => 100755 node_modules/lodash/fp/range.js mode change 100644 => 100755 node_modules/lodash/fp/rangeRight.js mode change 100644 => 100755 node_modules/lodash/fp/rangeStep.js mode change 100644 => 100755 node_modules/lodash/fp/rangeStepRight.js mode change 100644 => 100755 node_modules/lodash/fp/rearg.js mode change 100644 => 100755 node_modules/lodash/fp/reduce.js mode change 100644 => 100755 node_modules/lodash/fp/reduceRight.js mode change 100644 => 100755 node_modules/lodash/fp/reject.js mode change 100644 => 100755 node_modules/lodash/fp/remove.js mode change 100644 => 100755 node_modules/lodash/fp/repeat.js mode change 100644 => 100755 node_modules/lodash/fp/replace.js mode change 100644 => 100755 node_modules/lodash/fp/rest.js mode change 100644 => 100755 node_modules/lodash/fp/restFrom.js mode change 100644 => 100755 node_modules/lodash/fp/result.js mode change 100644 => 100755 node_modules/lodash/fp/reverse.js mode change 100644 => 100755 node_modules/lodash/fp/round.js mode change 100644 => 100755 node_modules/lodash/fp/sample.js mode change 100644 => 100755 node_modules/lodash/fp/sampleSize.js mode change 100644 => 100755 node_modules/lodash/fp/seq.js mode change 100644 => 100755 node_modules/lodash/fp/set.js mode change 100644 => 100755 node_modules/lodash/fp/setWith.js mode change 100644 => 100755 node_modules/lodash/fp/shuffle.js mode change 100644 => 100755 node_modules/lodash/fp/size.js mode change 100644 => 100755 node_modules/lodash/fp/slice.js mode change 100644 => 100755 node_modules/lodash/fp/snakeCase.js mode change 100644 => 100755 node_modules/lodash/fp/some.js mode change 100644 => 100755 node_modules/lodash/fp/sortBy.js mode change 100644 => 100755 node_modules/lodash/fp/sortedIndex.js mode change 100644 => 100755 node_modules/lodash/fp/sortedIndexBy.js mode change 100644 => 100755 node_modules/lodash/fp/sortedIndexOf.js mode change 100644 => 100755 node_modules/lodash/fp/sortedLastIndex.js mode change 100644 => 100755 node_modules/lodash/fp/sortedLastIndexBy.js mode change 100644 => 100755 node_modules/lodash/fp/sortedLastIndexOf.js mode change 100644 => 100755 node_modules/lodash/fp/sortedUniq.js mode change 100644 => 100755 node_modules/lodash/fp/sortedUniqBy.js mode change 100644 => 100755 node_modules/lodash/fp/split.js mode change 100644 => 100755 node_modules/lodash/fp/spread.js mode change 100644 => 100755 node_modules/lodash/fp/spreadFrom.js mode change 100644 => 100755 node_modules/lodash/fp/startCase.js mode change 100644 => 100755 node_modules/lodash/fp/startsWith.js mode change 100644 => 100755 node_modules/lodash/fp/string.js mode change 100644 => 100755 node_modules/lodash/fp/stubArray.js mode change 100644 => 100755 node_modules/lodash/fp/stubFalse.js mode change 100644 => 100755 node_modules/lodash/fp/stubObject.js mode change 100644 => 100755 node_modules/lodash/fp/stubString.js mode change 100644 => 100755 node_modules/lodash/fp/stubTrue.js mode change 100644 => 100755 node_modules/lodash/fp/subtract.js mode change 100644 => 100755 node_modules/lodash/fp/sum.js mode change 100644 => 100755 node_modules/lodash/fp/sumBy.js mode change 100644 => 100755 node_modules/lodash/fp/symmetricDifference.js mode change 100644 => 100755 node_modules/lodash/fp/symmetricDifferenceBy.js mode change 100644 => 100755 node_modules/lodash/fp/symmetricDifferenceWith.js mode change 100644 => 100755 node_modules/lodash/fp/tail.js mode change 100644 => 100755 node_modules/lodash/fp/take.js mode change 100644 => 100755 node_modules/lodash/fp/takeLast.js mode change 100644 => 100755 node_modules/lodash/fp/takeLastWhile.js mode change 100644 => 100755 node_modules/lodash/fp/takeRight.js mode change 100644 => 100755 node_modules/lodash/fp/takeRightWhile.js mode change 100644 => 100755 node_modules/lodash/fp/takeWhile.js mode change 100644 => 100755 node_modules/lodash/fp/tap.js mode change 100644 => 100755 node_modules/lodash/fp/template.js mode change 100644 => 100755 node_modules/lodash/fp/templateSettings.js mode change 100644 => 100755 node_modules/lodash/fp/throttle.js mode change 100644 => 100755 node_modules/lodash/fp/thru.js mode change 100644 => 100755 node_modules/lodash/fp/times.js mode change 100644 => 100755 node_modules/lodash/fp/toArray.js mode change 100644 => 100755 node_modules/lodash/fp/toFinite.js mode change 100644 => 100755 node_modules/lodash/fp/toInteger.js mode change 100644 => 100755 node_modules/lodash/fp/toIterator.js mode change 100644 => 100755 node_modules/lodash/fp/toJSON.js mode change 100644 => 100755 node_modules/lodash/fp/toLength.js mode change 100644 => 100755 node_modules/lodash/fp/toLower.js mode change 100644 => 100755 node_modules/lodash/fp/toNumber.js mode change 100644 => 100755 node_modules/lodash/fp/toPairs.js mode change 100644 => 100755 node_modules/lodash/fp/toPairsIn.js mode change 100644 => 100755 node_modules/lodash/fp/toPath.js mode change 100644 => 100755 node_modules/lodash/fp/toPlainObject.js mode change 100644 => 100755 node_modules/lodash/fp/toSafeInteger.js mode change 100644 => 100755 node_modules/lodash/fp/toString.js mode change 100644 => 100755 node_modules/lodash/fp/toUpper.js mode change 100644 => 100755 node_modules/lodash/fp/transform.js mode change 100644 => 100755 node_modules/lodash/fp/trim.js mode change 100644 => 100755 node_modules/lodash/fp/trimChars.js mode change 100644 => 100755 node_modules/lodash/fp/trimCharsEnd.js mode change 100644 => 100755 node_modules/lodash/fp/trimCharsStart.js mode change 100644 => 100755 node_modules/lodash/fp/trimEnd.js mode change 100644 => 100755 node_modules/lodash/fp/trimStart.js mode change 100644 => 100755 node_modules/lodash/fp/truncate.js mode change 100644 => 100755 node_modules/lodash/fp/unapply.js mode change 100644 => 100755 node_modules/lodash/fp/unary.js mode change 100644 => 100755 node_modules/lodash/fp/unescape.js mode change 100644 => 100755 node_modules/lodash/fp/union.js mode change 100644 => 100755 node_modules/lodash/fp/unionBy.js mode change 100644 => 100755 node_modules/lodash/fp/unionWith.js mode change 100644 => 100755 node_modules/lodash/fp/uniq.js mode change 100644 => 100755 node_modules/lodash/fp/uniqBy.js mode change 100644 => 100755 node_modules/lodash/fp/uniqWith.js mode change 100644 => 100755 node_modules/lodash/fp/uniqueId.js mode change 100644 => 100755 node_modules/lodash/fp/unnest.js mode change 100644 => 100755 node_modules/lodash/fp/unset.js mode change 100644 => 100755 node_modules/lodash/fp/unzip.js mode change 100644 => 100755 node_modules/lodash/fp/unzipWith.js mode change 100644 => 100755 node_modules/lodash/fp/update.js mode change 100644 => 100755 node_modules/lodash/fp/updateWith.js mode change 100644 => 100755 node_modules/lodash/fp/upperCase.js mode change 100644 => 100755 node_modules/lodash/fp/upperFirst.js mode change 100644 => 100755 node_modules/lodash/fp/useWith.js mode change 100644 => 100755 node_modules/lodash/fp/util.js mode change 100644 => 100755 node_modules/lodash/fp/value.js mode change 100644 => 100755 node_modules/lodash/fp/valueOf.js mode change 100644 => 100755 node_modules/lodash/fp/values.js mode change 100644 => 100755 node_modules/lodash/fp/valuesIn.js mode change 100644 => 100755 node_modules/lodash/fp/where.js mode change 100644 => 100755 node_modules/lodash/fp/whereEq.js mode change 100644 => 100755 node_modules/lodash/fp/without.js mode change 100644 => 100755 node_modules/lodash/fp/words.js mode change 100644 => 100755 node_modules/lodash/fp/wrap.js mode change 100644 => 100755 node_modules/lodash/fp/wrapperAt.js mode change 100644 => 100755 node_modules/lodash/fp/wrapperChain.js mode change 100644 => 100755 node_modules/lodash/fp/wrapperLodash.js mode change 100644 => 100755 node_modules/lodash/fp/wrapperReverse.js mode change 100644 => 100755 node_modules/lodash/fp/wrapperValue.js mode change 100644 => 100755 node_modules/lodash/fp/xor.js mode change 100644 => 100755 node_modules/lodash/fp/xorBy.js mode change 100644 => 100755 node_modules/lodash/fp/xorWith.js mode change 100644 => 100755 node_modules/lodash/fp/zip.js mode change 100644 => 100755 node_modules/lodash/fp/zipAll.js mode change 100644 => 100755 node_modules/lodash/fp/zipObj.js mode change 100644 => 100755 node_modules/lodash/fp/zipObject.js mode change 100644 => 100755 node_modules/lodash/fp/zipObjectDeep.js mode change 100644 => 100755 node_modules/lodash/fp/zipWith.js mode change 100644 => 100755 node_modules/lodash/fromPairs.js mode change 100644 => 100755 node_modules/lodash/function.js mode change 100644 => 100755 node_modules/lodash/functions.js mode change 100644 => 100755 node_modules/lodash/functionsIn.js mode change 100644 => 100755 node_modules/lodash/get.js mode change 100644 => 100755 node_modules/lodash/groupBy.js mode change 100644 => 100755 node_modules/lodash/gt.js mode change 100644 => 100755 node_modules/lodash/gte.js mode change 100644 => 100755 node_modules/lodash/has.js mode change 100644 => 100755 node_modules/lodash/hasIn.js mode change 100644 => 100755 node_modules/lodash/head.js mode change 100644 => 100755 node_modules/lodash/identity.js mode change 100644 => 100755 node_modules/lodash/inRange.js mode change 100644 => 100755 node_modules/lodash/includes.js mode change 100644 => 100755 node_modules/lodash/index.js mode change 100644 => 100755 node_modules/lodash/indexOf.js mode change 100644 => 100755 node_modules/lodash/initial.js mode change 100644 => 100755 node_modules/lodash/intersection.js mode change 100644 => 100755 node_modules/lodash/intersectionBy.js mode change 100644 => 100755 node_modules/lodash/intersectionWith.js mode change 100644 => 100755 node_modules/lodash/invert.js mode change 100644 => 100755 node_modules/lodash/invertBy.js mode change 100644 => 100755 node_modules/lodash/invoke.js mode change 100644 => 100755 node_modules/lodash/invokeMap.js mode change 100644 => 100755 node_modules/lodash/isArguments.js mode change 100644 => 100755 node_modules/lodash/isArray.js mode change 100644 => 100755 node_modules/lodash/isArrayBuffer.js mode change 100644 => 100755 node_modules/lodash/isArrayLike.js mode change 100644 => 100755 node_modules/lodash/isArrayLikeObject.js mode change 100644 => 100755 node_modules/lodash/isBoolean.js mode change 100644 => 100755 node_modules/lodash/isBuffer.js mode change 100644 => 100755 node_modules/lodash/isDate.js mode change 100644 => 100755 node_modules/lodash/isElement.js mode change 100644 => 100755 node_modules/lodash/isEmpty.js mode change 100644 => 100755 node_modules/lodash/isEqual.js mode change 100644 => 100755 node_modules/lodash/isEqualWith.js mode change 100644 => 100755 node_modules/lodash/isError.js mode change 100644 => 100755 node_modules/lodash/isFinite.js mode change 100644 => 100755 node_modules/lodash/isFunction.js mode change 100644 => 100755 node_modules/lodash/isInteger.js mode change 100644 => 100755 node_modules/lodash/isLength.js mode change 100644 => 100755 node_modules/lodash/isMap.js mode change 100644 => 100755 node_modules/lodash/isMatch.js mode change 100644 => 100755 node_modules/lodash/isMatchWith.js mode change 100644 => 100755 node_modules/lodash/isNaN.js mode change 100644 => 100755 node_modules/lodash/isNative.js mode change 100644 => 100755 node_modules/lodash/isNil.js mode change 100644 => 100755 node_modules/lodash/isNull.js mode change 100644 => 100755 node_modules/lodash/isNumber.js mode change 100644 => 100755 node_modules/lodash/isObject.js mode change 100644 => 100755 node_modules/lodash/isObjectLike.js mode change 100644 => 100755 node_modules/lodash/isPlainObject.js mode change 100644 => 100755 node_modules/lodash/isRegExp.js mode change 100644 => 100755 node_modules/lodash/isSafeInteger.js mode change 100644 => 100755 node_modules/lodash/isSet.js mode change 100644 => 100755 node_modules/lodash/isString.js mode change 100644 => 100755 node_modules/lodash/isSymbol.js mode change 100644 => 100755 node_modules/lodash/isTypedArray.js mode change 100644 => 100755 node_modules/lodash/isUndefined.js mode change 100644 => 100755 node_modules/lodash/isWeakMap.js mode change 100644 => 100755 node_modules/lodash/isWeakSet.js mode change 100644 => 100755 node_modules/lodash/iteratee.js mode change 100644 => 100755 node_modules/lodash/join.js mode change 100644 => 100755 node_modules/lodash/kebabCase.js mode change 100644 => 100755 node_modules/lodash/keyBy.js mode change 100644 => 100755 node_modules/lodash/keys.js mode change 100644 => 100755 node_modules/lodash/keysIn.js mode change 100644 => 100755 node_modules/lodash/lang.js mode change 100644 => 100755 node_modules/lodash/last.js mode change 100644 => 100755 node_modules/lodash/lastIndexOf.js mode change 100644 => 100755 node_modules/lodash/lodash.js mode change 100644 => 100755 node_modules/lodash/lodash.min.js mode change 100644 => 100755 node_modules/lodash/lowerCase.js mode change 100644 => 100755 node_modules/lodash/lowerFirst.js mode change 100644 => 100755 node_modules/lodash/lt.js mode change 100644 => 100755 node_modules/lodash/lte.js mode change 100644 => 100755 node_modules/lodash/map.js mode change 100644 => 100755 node_modules/lodash/mapKeys.js mode change 100644 => 100755 node_modules/lodash/mapValues.js mode change 100644 => 100755 node_modules/lodash/matches.js mode change 100644 => 100755 node_modules/lodash/matchesProperty.js mode change 100644 => 100755 node_modules/lodash/math.js mode change 100644 => 100755 node_modules/lodash/max.js mode change 100644 => 100755 node_modules/lodash/maxBy.js mode change 100644 => 100755 node_modules/lodash/mean.js mode change 100644 => 100755 node_modules/lodash/meanBy.js mode change 100644 => 100755 node_modules/lodash/memoize.js mode change 100644 => 100755 node_modules/lodash/merge.js mode change 100644 => 100755 node_modules/lodash/mergeWith.js mode change 100644 => 100755 node_modules/lodash/method.js mode change 100644 => 100755 node_modules/lodash/methodOf.js mode change 100644 => 100755 node_modules/lodash/min.js mode change 100644 => 100755 node_modules/lodash/minBy.js mode change 100644 => 100755 node_modules/lodash/mixin.js mode change 100644 => 100755 node_modules/lodash/multiply.js mode change 100644 => 100755 node_modules/lodash/negate.js mode change 100644 => 100755 node_modules/lodash/next.js mode change 100644 => 100755 node_modules/lodash/noop.js mode change 100644 => 100755 node_modules/lodash/now.js mode change 100644 => 100755 node_modules/lodash/nth.js mode change 100644 => 100755 node_modules/lodash/nthArg.js mode change 100644 => 100755 node_modules/lodash/number.js mode change 100644 => 100755 node_modules/lodash/object.js mode change 100644 => 100755 node_modules/lodash/omit.js mode change 100644 => 100755 node_modules/lodash/omitBy.js mode change 100644 => 100755 node_modules/lodash/once.js mode change 100644 => 100755 node_modules/lodash/orderBy.js mode change 100644 => 100755 node_modules/lodash/over.js mode change 100644 => 100755 node_modules/lodash/overArgs.js mode change 100644 => 100755 node_modules/lodash/overEvery.js mode change 100644 => 100755 node_modules/lodash/overSome.js mode change 100644 => 100755 node_modules/lodash/package.json mode change 100644 => 100755 node_modules/lodash/pad.js mode change 100644 => 100755 node_modules/lodash/padEnd.js mode change 100644 => 100755 node_modules/lodash/padStart.js mode change 100644 => 100755 node_modules/lodash/parseInt.js mode change 100644 => 100755 node_modules/lodash/partial.js mode change 100644 => 100755 node_modules/lodash/partialRight.js mode change 100644 => 100755 node_modules/lodash/partition.js mode change 100644 => 100755 node_modules/lodash/pick.js mode change 100644 => 100755 node_modules/lodash/pickBy.js mode change 100644 => 100755 node_modules/lodash/plant.js mode change 100644 => 100755 node_modules/lodash/property.js mode change 100644 => 100755 node_modules/lodash/propertyOf.js mode change 100644 => 100755 node_modules/lodash/pull.js mode change 100644 => 100755 node_modules/lodash/pullAll.js mode change 100644 => 100755 node_modules/lodash/pullAllBy.js mode change 100644 => 100755 node_modules/lodash/pullAllWith.js mode change 100644 => 100755 node_modules/lodash/pullAt.js mode change 100644 => 100755 node_modules/lodash/random.js mode change 100644 => 100755 node_modules/lodash/range.js mode change 100644 => 100755 node_modules/lodash/rangeRight.js mode change 100644 => 100755 node_modules/lodash/rearg.js mode change 100644 => 100755 node_modules/lodash/reduce.js mode change 100644 => 100755 node_modules/lodash/reduceRight.js mode change 100644 => 100755 node_modules/lodash/reject.js mode change 100644 => 100755 node_modules/lodash/release.md mode change 100644 => 100755 node_modules/lodash/remove.js mode change 100644 => 100755 node_modules/lodash/repeat.js mode change 100644 => 100755 node_modules/lodash/replace.js mode change 100644 => 100755 node_modules/lodash/rest.js mode change 100644 => 100755 node_modules/lodash/result.js mode change 100644 => 100755 node_modules/lodash/reverse.js mode change 100644 => 100755 node_modules/lodash/round.js mode change 100644 => 100755 node_modules/lodash/sample.js mode change 100644 => 100755 node_modules/lodash/sampleSize.js mode change 100644 => 100755 node_modules/lodash/seq.js mode change 100644 => 100755 node_modules/lodash/set.js mode change 100644 => 100755 node_modules/lodash/setWith.js mode change 100644 => 100755 node_modules/lodash/shuffle.js mode change 100644 => 100755 node_modules/lodash/size.js mode change 100644 => 100755 node_modules/lodash/slice.js mode change 100644 => 100755 node_modules/lodash/snakeCase.js mode change 100644 => 100755 node_modules/lodash/some.js mode change 100644 => 100755 node_modules/lodash/sortBy.js mode change 100644 => 100755 node_modules/lodash/sortedIndex.js mode change 100644 => 100755 node_modules/lodash/sortedIndexBy.js mode change 100644 => 100755 node_modules/lodash/sortedIndexOf.js mode change 100644 => 100755 node_modules/lodash/sortedLastIndex.js mode change 100644 => 100755 node_modules/lodash/sortedLastIndexBy.js mode change 100644 => 100755 node_modules/lodash/sortedLastIndexOf.js mode change 100644 => 100755 node_modules/lodash/sortedUniq.js mode change 100644 => 100755 node_modules/lodash/sortedUniqBy.js mode change 100644 => 100755 node_modules/lodash/split.js mode change 100644 => 100755 node_modules/lodash/spread.js mode change 100644 => 100755 node_modules/lodash/startCase.js mode change 100644 => 100755 node_modules/lodash/startsWith.js mode change 100644 => 100755 node_modules/lodash/string.js mode change 100644 => 100755 node_modules/lodash/stubArray.js mode change 100644 => 100755 node_modules/lodash/stubFalse.js mode change 100644 => 100755 node_modules/lodash/stubObject.js mode change 100644 => 100755 node_modules/lodash/stubString.js mode change 100644 => 100755 node_modules/lodash/stubTrue.js mode change 100644 => 100755 node_modules/lodash/subtract.js mode change 100644 => 100755 node_modules/lodash/sum.js mode change 100644 => 100755 node_modules/lodash/sumBy.js mode change 100644 => 100755 node_modules/lodash/tail.js mode change 100644 => 100755 node_modules/lodash/take.js mode change 100644 => 100755 node_modules/lodash/takeRight.js mode change 100644 => 100755 node_modules/lodash/takeRightWhile.js mode change 100644 => 100755 node_modules/lodash/takeWhile.js mode change 100644 => 100755 node_modules/lodash/tap.js mode change 100644 => 100755 node_modules/lodash/template.js mode change 100644 => 100755 node_modules/lodash/templateSettings.js mode change 100644 => 100755 node_modules/lodash/throttle.js mode change 100644 => 100755 node_modules/lodash/thru.js mode change 100644 => 100755 node_modules/lodash/times.js mode change 100644 => 100755 node_modules/lodash/toArray.js mode change 100644 => 100755 node_modules/lodash/toFinite.js mode change 100644 => 100755 node_modules/lodash/toInteger.js mode change 100644 => 100755 node_modules/lodash/toIterator.js mode change 100644 => 100755 node_modules/lodash/toJSON.js mode change 100644 => 100755 node_modules/lodash/toLength.js mode change 100644 => 100755 node_modules/lodash/toLower.js mode change 100644 => 100755 node_modules/lodash/toNumber.js mode change 100644 => 100755 node_modules/lodash/toPairs.js mode change 100644 => 100755 node_modules/lodash/toPairsIn.js mode change 100644 => 100755 node_modules/lodash/toPath.js mode change 100644 => 100755 node_modules/lodash/toPlainObject.js mode change 100644 => 100755 node_modules/lodash/toSafeInteger.js mode change 100644 => 100755 node_modules/lodash/toString.js mode change 100644 => 100755 node_modules/lodash/toUpper.js mode change 100644 => 100755 node_modules/lodash/transform.js mode change 100644 => 100755 node_modules/lodash/trim.js mode change 100644 => 100755 node_modules/lodash/trimEnd.js mode change 100644 => 100755 node_modules/lodash/trimStart.js mode change 100644 => 100755 node_modules/lodash/truncate.js mode change 100644 => 100755 node_modules/lodash/unary.js mode change 100644 => 100755 node_modules/lodash/unescape.js mode change 100644 => 100755 node_modules/lodash/union.js mode change 100644 => 100755 node_modules/lodash/unionBy.js mode change 100644 => 100755 node_modules/lodash/unionWith.js mode change 100644 => 100755 node_modules/lodash/uniq.js mode change 100644 => 100755 node_modules/lodash/uniqBy.js mode change 100644 => 100755 node_modules/lodash/uniqWith.js mode change 100644 => 100755 node_modules/lodash/uniqueId.js mode change 100644 => 100755 node_modules/lodash/unset.js mode change 100644 => 100755 node_modules/lodash/unzip.js mode change 100644 => 100755 node_modules/lodash/unzipWith.js mode change 100644 => 100755 node_modules/lodash/update.js mode change 100644 => 100755 node_modules/lodash/updateWith.js mode change 100644 => 100755 node_modules/lodash/upperCase.js mode change 100644 => 100755 node_modules/lodash/upperFirst.js mode change 100644 => 100755 node_modules/lodash/util.js mode change 100644 => 100755 node_modules/lodash/value.js mode change 100644 => 100755 node_modules/lodash/valueOf.js mode change 100644 => 100755 node_modules/lodash/values.js mode change 100644 => 100755 node_modules/lodash/valuesIn.js mode change 100644 => 100755 node_modules/lodash/without.js mode change 100644 => 100755 node_modules/lodash/words.js mode change 100644 => 100755 node_modules/lodash/wrap.js mode change 100644 => 100755 node_modules/lodash/wrapperAt.js mode change 100644 => 100755 node_modules/lodash/wrapperChain.js mode change 100644 => 100755 node_modules/lodash/wrapperLodash.js mode change 100644 => 100755 node_modules/lodash/wrapperReverse.js mode change 100644 => 100755 node_modules/lodash/wrapperValue.js mode change 100644 => 100755 node_modules/lodash/xor.js mode change 100644 => 100755 node_modules/lodash/xorBy.js mode change 100644 => 100755 node_modules/lodash/xorWith.js mode change 100644 => 100755 node_modules/lodash/zip.js mode change 100644 => 100755 node_modules/lodash/zipObject.js mode change 100644 => 100755 node_modules/lodash/zipObjectDeep.js mode change 100644 => 100755 node_modules/lodash/zipWith.js create mode 100755 node_modules/lru-cache/LICENSE create mode 100755 node_modules/lru-cache/README.md create mode 100755 node_modules/lru-cache/index.js create mode 100755 node_modules/lru-cache/package.json create mode 100755 node_modules/make-dir/index.d.ts create mode 100755 node_modules/make-dir/index.js create mode 100755 node_modules/make-dir/license create mode 100755 node_modules/make-dir/package.json create mode 100755 node_modules/make-dir/readme.md create mode 100755 node_modules/makeerror/.travis.yml create mode 100755 node_modules/makeerror/lib/makeerror.js create mode 100755 node_modules/makeerror/license create mode 100755 node_modules/makeerror/package.json create mode 100755 node_modules/makeerror/readme.md mode change 100644 => 100755 node_modules/media-typer/HISTORY.md mode change 100644 => 100755 node_modules/media-typer/LICENSE mode change 100644 => 100755 node_modules/media-typer/README.md mode change 100644 => 100755 node_modules/media-typer/index.js mode change 100644 => 100755 node_modules/media-typer/package.json mode change 100644 => 100755 node_modules/merge-descriptors/HISTORY.md mode change 100644 => 100755 node_modules/merge-descriptors/LICENSE mode change 100644 => 100755 node_modules/merge-descriptors/README.md mode change 100644 => 100755 node_modules/merge-descriptors/index.js mode change 100644 => 100755 node_modules/merge-descriptors/package.json create mode 100755 node_modules/merge-stream/LICENSE create mode 100755 node_modules/merge-stream/README.md create mode 100755 node_modules/merge-stream/index.js create mode 100755 node_modules/merge-stream/package.json mode change 100644 => 100755 node_modules/methods/HISTORY.md mode change 100644 => 100755 node_modules/methods/LICENSE mode change 100644 => 100755 node_modules/methods/README.md mode change 100644 => 100755 node_modules/methods/index.js mode change 100644 => 100755 node_modules/methods/package.json create mode 100755 node_modules/micromatch/LICENSE create mode 100755 node_modules/micromatch/README.md create mode 100755 node_modules/micromatch/index.js create mode 100755 node_modules/micromatch/package.json mode change 100644 => 100755 node_modules/mime-db/HISTORY.md mode change 100644 => 100755 node_modules/mime-db/LICENSE mode change 100644 => 100755 node_modules/mime-db/README.md mode change 100644 => 100755 node_modules/mime-db/db.json mode change 100644 => 100755 node_modules/mime-db/index.js mode change 100644 => 100755 node_modules/mime-db/package.json mode change 100644 => 100755 node_modules/mime-types/HISTORY.md mode change 100644 => 100755 node_modules/mime-types/LICENSE mode change 100644 => 100755 node_modules/mime-types/README.md mode change 100644 => 100755 node_modules/mime-types/index.js mode change 100644 => 100755 node_modules/mime-types/package.json mode change 100644 => 100755 node_modules/mime/.npmignore mode change 100644 => 100755 node_modules/mime/CHANGELOG.md mode change 100644 => 100755 node_modules/mime/LICENSE mode change 100644 => 100755 node_modules/mime/README.md mode change 100644 => 100755 node_modules/mime/mime.js mode change 100644 => 100755 node_modules/mime/package.json mode change 100644 => 100755 node_modules/mime/src/test.js mode change 100644 => 100755 node_modules/mime/types.json create mode 100755 node_modules/mimic-fn/index.d.ts create mode 100755 node_modules/mimic-fn/index.js create mode 100755 node_modules/mimic-fn/license create mode 100755 node_modules/mimic-fn/package.json create mode 100755 node_modules/mimic-fn/readme.md create mode 100755 node_modules/minimatch/LICENSE create mode 100755 node_modules/minimatch/README.md create mode 100755 node_modules/minimatch/minimatch.js create mode 100755 node_modules/minimatch/package.json mode change 100644 => 100755 node_modules/ms/index.js mode change 100644 => 100755 node_modules/ms/license.md mode change 100644 => 100755 node_modules/ms/package.json mode change 100644 => 100755 node_modules/ms/readme.md create mode 100755 node_modules/natural-compare/README.md create mode 100755 node_modules/natural-compare/index.js create mode 100755 node_modules/natural-compare/package.json mode change 100644 => 100755 node_modules/negotiator/HISTORY.md mode change 100644 => 100755 node_modules/negotiator/LICENSE mode change 100644 => 100755 node_modules/negotiator/README.md mode change 100644 => 100755 node_modules/negotiator/index.js mode change 100644 => 100755 node_modules/negotiator/lib/charset.js mode change 100644 => 100755 node_modules/negotiator/lib/encoding.js mode change 100644 => 100755 node_modules/negotiator/lib/language.js mode change 100644 => 100755 node_modules/negotiator/lib/mediaType.js mode change 100644 => 100755 node_modules/negotiator/package.json create mode 100755 node_modules/node-int64/.npmignore create mode 100755 node_modules/node-int64/Int64.js create mode 100755 node_modules/node-int64/LICENSE create mode 100755 node_modules/node-int64/README.md create mode 100755 node_modules/node-int64/package.json create mode 100755 node_modules/node-int64/test.js create mode 100755 node_modules/node-releases/LICENSE create mode 100755 node_modules/node-releases/README.md create mode 100755 node_modules/node-releases/data/processed/envs.json create mode 100755 node_modules/node-releases/data/release-schedule/release-schedule.json create mode 100755 node_modules/node-releases/package.json create mode 100755 node_modules/normalize-path/LICENSE create mode 100755 node_modules/normalize-path/README.md create mode 100755 node_modules/normalize-path/index.js create mode 100755 node_modules/normalize-path/package.json create mode 100755 node_modules/npm-run-path/index.d.ts create mode 100755 node_modules/npm-run-path/index.js create mode 100755 node_modules/npm-run-path/license create mode 100755 node_modules/npm-run-path/package.json create mode 100755 node_modules/npm-run-path/readme.md mode change 100644 => 100755 node_modules/nwsapi/LICENSE mode change 100644 => 100755 node_modules/nwsapi/README.md mode change 100644 => 100755 node_modules/nwsapi/dist/lint.log mode change 100644 => 100755 node_modules/nwsapi/package.json mode change 100644 => 100755 node_modules/nwsapi/src/modules/nwsapi-jquery.js mode change 100644 => 100755 node_modules/nwsapi/src/modules/nwsapi-traversal.js mode change 100644 => 100755 node_modules/nwsapi/src/nwsapi.js mode change 100644 => 100755 node_modules/object-inspect/.eslintrc mode change 100644 => 100755 node_modules/object-inspect/.github/FUNDING.yml mode change 100644 => 100755 node_modules/object-inspect/.nycrc mode change 100644 => 100755 node_modules/object-inspect/CHANGELOG.md mode change 100644 => 100755 node_modules/object-inspect/LICENSE mode change 100644 => 100755 node_modules/object-inspect/example/all.js mode change 100644 => 100755 node_modules/object-inspect/example/circular.js mode change 100644 => 100755 node_modules/object-inspect/example/fn.js mode change 100644 => 100755 node_modules/object-inspect/example/inspect.js mode change 100644 => 100755 node_modules/object-inspect/index.js mode change 100644 => 100755 node_modules/object-inspect/package-support.json mode change 100644 => 100755 node_modules/object-inspect/package.json mode change 100644 => 100755 node_modules/object-inspect/readme.markdown mode change 100644 => 100755 node_modules/object-inspect/test-core-js.js mode change 100644 => 100755 node_modules/object-inspect/test/bigint.js mode change 100644 => 100755 node_modules/object-inspect/test/browser/dom.js mode change 100644 => 100755 node_modules/object-inspect/test/circular.js mode change 100644 => 100755 node_modules/object-inspect/test/deep.js mode change 100644 => 100755 node_modules/object-inspect/test/element.js mode change 100644 => 100755 node_modules/object-inspect/test/err.js mode change 100644 => 100755 node_modules/object-inspect/test/fakes.js mode change 100644 => 100755 node_modules/object-inspect/test/fn.js mode change 100644 => 100755 node_modules/object-inspect/test/has.js mode change 100644 => 100755 node_modules/object-inspect/test/holes.js mode change 100644 => 100755 node_modules/object-inspect/test/indent-option.js mode change 100644 => 100755 node_modules/object-inspect/test/inspect.js mode change 100644 => 100755 node_modules/object-inspect/test/lowbyte.js mode change 100644 => 100755 node_modules/object-inspect/test/number.js mode change 100644 => 100755 node_modules/object-inspect/test/quoteStyle.js mode change 100644 => 100755 node_modules/object-inspect/test/toStringTag.js mode change 100644 => 100755 node_modules/object-inspect/test/undef.js mode change 100644 => 100755 node_modules/object-inspect/test/values.js mode change 100644 => 100755 node_modules/object-inspect/util.inspect.js mode change 100644 => 100755 node_modules/on-finished/HISTORY.md mode change 100644 => 100755 node_modules/on-finished/LICENSE mode change 100644 => 100755 node_modules/on-finished/README.md mode change 100644 => 100755 node_modules/on-finished/index.js mode change 100644 => 100755 node_modules/on-finished/package.json create mode 100755 node_modules/once/LICENSE create mode 100755 node_modules/once/README.md create mode 100755 node_modules/once/once.js create mode 100755 node_modules/once/package.json create mode 100755 node_modules/onetime/index.d.ts create mode 100755 node_modules/onetime/index.js create mode 100755 node_modules/onetime/license create mode 100755 node_modules/onetime/package.json create mode 100755 node_modules/onetime/readme.md mode change 100644 => 100755 node_modules/optionator/CHANGELOG.md mode change 100644 => 100755 node_modules/optionator/LICENSE mode change 100644 => 100755 node_modules/optionator/README.md mode change 100644 => 100755 node_modules/optionator/lib/help.js mode change 100644 => 100755 node_modules/optionator/lib/index.js mode change 100644 => 100755 node_modules/optionator/lib/util.js mode change 100644 => 100755 node_modules/optionator/package.json create mode 100755 node_modules/p-limit/index.d.ts create mode 100755 node_modules/p-limit/index.js create mode 100755 node_modules/p-limit/license create mode 100755 node_modules/p-limit/package.json create mode 100755 node_modules/p-limit/readme.md create mode 100755 node_modules/p-locate/index.d.ts create mode 100755 node_modules/p-locate/index.js create mode 100755 node_modules/p-locate/license create mode 100755 node_modules/p-locate/node_modules/p-limit/index.d.ts create mode 100755 node_modules/p-locate/node_modules/p-limit/index.js create mode 100755 node_modules/p-locate/node_modules/p-limit/license create mode 100755 node_modules/p-locate/node_modules/p-limit/package.json create mode 100755 node_modules/p-locate/node_modules/p-limit/readme.md create mode 100755 node_modules/p-locate/package.json create mode 100755 node_modules/p-locate/readme.md create mode 100755 node_modules/p-try/index.d.ts create mode 100755 node_modules/p-try/index.js create mode 100755 node_modules/p-try/license create mode 100755 node_modules/p-try/package.json create mode 100755 node_modules/p-try/readme.md create mode 100755 node_modules/parse-json/index.js create mode 100755 node_modules/parse-json/license create mode 100755 node_modules/parse-json/package.json create mode 100755 node_modules/parse-json/readme.md mode change 100644 => 100755 node_modules/parse5/LICENSE mode change 100644 => 100755 node_modules/parse5/README.md mode change 100644 => 100755 node_modules/parse5/lib/common/doctype.js mode change 100644 => 100755 node_modules/parse5/lib/common/error-codes.js mode change 100644 => 100755 node_modules/parse5/lib/common/foreign-content.js mode change 100644 => 100755 node_modules/parse5/lib/common/html.js mode change 100644 => 100755 node_modules/parse5/lib/common/unicode.js mode change 100644 => 100755 node_modules/parse5/lib/extensions/error-reporting/mixin-base.js mode change 100644 => 100755 node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js mode change 100644 => 100755 node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js mode change 100644 => 100755 node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js mode change 100644 => 100755 node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js mode change 100644 => 100755 node_modules/parse5/lib/extensions/location-info/parser-mixin.js mode change 100644 => 100755 node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js mode change 100644 => 100755 node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js mode change 100644 => 100755 node_modules/parse5/lib/index.js mode change 100644 => 100755 node_modules/parse5/lib/parser/formatting-element-list.js mode change 100644 => 100755 node_modules/parse5/lib/parser/index.js mode change 100644 => 100755 node_modules/parse5/lib/parser/open-element-stack.js mode change 100644 => 100755 node_modules/parse5/lib/serializer/index.js mode change 100644 => 100755 node_modules/parse5/lib/tokenizer/index.js mode change 100644 => 100755 node_modules/parse5/lib/tokenizer/named-entity-data.js mode change 100644 => 100755 node_modules/parse5/lib/tokenizer/preprocessor.js mode change 100644 => 100755 node_modules/parse5/lib/tree-adapters/default.js mode change 100644 => 100755 node_modules/parse5/lib/utils/merge-options.js mode change 100644 => 100755 node_modules/parse5/lib/utils/mixin.js mode change 100644 => 100755 node_modules/parse5/package.json mode change 100644 => 100755 node_modules/parseurl/HISTORY.md mode change 100644 => 100755 node_modules/parseurl/LICENSE mode change 100644 => 100755 node_modules/parseurl/README.md mode change 100644 => 100755 node_modules/parseurl/index.js mode change 100644 => 100755 node_modules/parseurl/package.json create mode 100755 node_modules/path-exists/index.d.ts create mode 100755 node_modules/path-exists/index.js create mode 100755 node_modules/path-exists/license create mode 100755 node_modules/path-exists/package.json create mode 100755 node_modules/path-exists/readme.md create mode 100755 node_modules/path-is-absolute/index.js create mode 100755 node_modules/path-is-absolute/license create mode 100755 node_modules/path-is-absolute/package.json create mode 100755 node_modules/path-is-absolute/readme.md create mode 100755 node_modules/path-key/index.d.ts create mode 100755 node_modules/path-key/index.js create mode 100755 node_modules/path-key/license create mode 100755 node_modules/path-key/package.json create mode 100755 node_modules/path-key/readme.md create mode 100755 node_modules/path-parse/LICENSE create mode 100755 node_modules/path-parse/README.md create mode 100755 node_modules/path-parse/index.js create mode 100755 node_modules/path-parse/package.json mode change 100644 => 100755 node_modules/path-to-regexp/History.md mode change 100644 => 100755 node_modules/path-to-regexp/LICENSE mode change 100644 => 100755 node_modules/path-to-regexp/Readme.md mode change 100644 => 100755 node_modules/path-to-regexp/index.js mode change 100644 => 100755 node_modules/path-to-regexp/package.json create mode 100755 node_modules/picocolors/LICENSE create mode 100755 node_modules/picocolors/README.md create mode 100755 node_modules/picocolors/package.json create mode 100755 node_modules/picocolors/picocolors.browser.js create mode 100755 node_modules/picocolors/picocolors.d.ts create mode 100755 node_modules/picocolors/picocolors.js create mode 100755 node_modules/picocolors/types.ts create mode 100755 node_modules/picomatch/CHANGELOG.md create mode 100755 node_modules/picomatch/LICENSE create mode 100755 node_modules/picomatch/README.md create mode 100755 node_modules/picomatch/index.js create mode 100755 node_modules/picomatch/lib/constants.js create mode 100755 node_modules/picomatch/lib/parse.js create mode 100755 node_modules/picomatch/lib/picomatch.js create mode 100755 node_modules/picomatch/lib/scan.js create mode 100755 node_modules/picomatch/lib/utils.js create mode 100755 node_modules/picomatch/package.json create mode 100755 node_modules/pirates/LICENSE create mode 100755 node_modules/pirates/README.md create mode 100755 node_modules/pirates/index.d.ts create mode 100755 node_modules/pirates/lib/index.js create mode 100755 node_modules/pirates/package.json create mode 100755 node_modules/pkg-dir/index.d.ts create mode 100755 node_modules/pkg-dir/index.js create mode 100755 node_modules/pkg-dir/license create mode 100755 node_modules/pkg-dir/package.json create mode 100755 node_modules/pkg-dir/readme.md mode change 100644 => 100755 node_modules/prelude-ls/CHANGELOG.md mode change 100644 => 100755 node_modules/prelude-ls/LICENSE mode change 100644 => 100755 node_modules/prelude-ls/README.md mode change 100644 => 100755 node_modules/prelude-ls/lib/Func.js mode change 100644 => 100755 node_modules/prelude-ls/lib/List.js mode change 100644 => 100755 node_modules/prelude-ls/lib/Num.js mode change 100644 => 100755 node_modules/prelude-ls/lib/Obj.js mode change 100644 => 100755 node_modules/prelude-ls/lib/Str.js mode change 100644 => 100755 node_modules/prelude-ls/lib/index.js mode change 100644 => 100755 node_modules/prelude-ls/package.json create mode 100755 node_modules/pretty-format/LICENSE create mode 100755 node_modules/pretty-format/README.md create mode 100755 node_modules/pretty-format/build/collections.js create mode 100755 node_modules/pretty-format/build/index.d.ts create mode 100755 node_modules/pretty-format/build/index.js create mode 100755 node_modules/pretty-format/build/plugins/AsymmetricMatcher.js create mode 100755 node_modules/pretty-format/build/plugins/DOMCollection.js create mode 100755 node_modules/pretty-format/build/plugins/DOMElement.js create mode 100755 node_modules/pretty-format/build/plugins/Immutable.js create mode 100755 node_modules/pretty-format/build/plugins/ReactElement.js create mode 100755 node_modules/pretty-format/build/plugins/ReactTestComponent.js create mode 100755 node_modules/pretty-format/build/plugins/lib/escapeHTML.js create mode 100755 node_modules/pretty-format/build/plugins/lib/markup.js create mode 100755 node_modules/pretty-format/build/types.js create mode 100755 node_modules/pretty-format/node_modules/ansi-styles/index.d.ts create mode 100755 node_modules/pretty-format/node_modules/ansi-styles/index.js create mode 100755 node_modules/pretty-format/node_modules/ansi-styles/license create mode 100755 node_modules/pretty-format/node_modules/ansi-styles/package.json create mode 100755 node_modules/pretty-format/node_modules/ansi-styles/readme.md create mode 100755 node_modules/pretty-format/package.json create mode 100755 node_modules/prompts/dist/dateparts/datepart.js create mode 100755 node_modules/prompts/dist/dateparts/day.js create mode 100755 node_modules/prompts/dist/dateparts/hours.js create mode 100755 node_modules/prompts/dist/dateparts/index.js create mode 100755 node_modules/prompts/dist/dateparts/meridiem.js create mode 100755 node_modules/prompts/dist/dateparts/milliseconds.js create mode 100755 node_modules/prompts/dist/dateparts/minutes.js create mode 100755 node_modules/prompts/dist/dateparts/month.js create mode 100755 node_modules/prompts/dist/dateparts/seconds.js create mode 100755 node_modules/prompts/dist/dateparts/year.js create mode 100755 node_modules/prompts/dist/elements/autocomplete.js create mode 100755 node_modules/prompts/dist/elements/autocompleteMultiselect.js create mode 100755 node_modules/prompts/dist/elements/confirm.js create mode 100755 node_modules/prompts/dist/elements/date.js create mode 100755 node_modules/prompts/dist/elements/index.js create mode 100755 node_modules/prompts/dist/elements/multiselect.js create mode 100755 node_modules/prompts/dist/elements/number.js create mode 100755 node_modules/prompts/dist/elements/prompt.js create mode 100755 node_modules/prompts/dist/elements/select.js create mode 100755 node_modules/prompts/dist/elements/text.js create mode 100755 node_modules/prompts/dist/elements/toggle.js create mode 100755 node_modules/prompts/dist/index.js create mode 100755 node_modules/prompts/dist/prompts.js create mode 100755 node_modules/prompts/dist/util/action.js create mode 100755 node_modules/prompts/dist/util/clear.js create mode 100755 node_modules/prompts/dist/util/entriesToDisplay.js create mode 100755 node_modules/prompts/dist/util/figures.js create mode 100755 node_modules/prompts/dist/util/index.js create mode 100755 node_modules/prompts/dist/util/lines.js create mode 100755 node_modules/prompts/dist/util/strip.js create mode 100755 node_modules/prompts/dist/util/style.js create mode 100755 node_modules/prompts/dist/util/wrap.js create mode 100755 node_modules/prompts/index.js create mode 100755 node_modules/prompts/lib/dateparts/datepart.js create mode 100755 node_modules/prompts/lib/dateparts/day.js create mode 100755 node_modules/prompts/lib/dateparts/hours.js create mode 100755 node_modules/prompts/lib/dateparts/index.js create mode 100755 node_modules/prompts/lib/dateparts/meridiem.js create mode 100755 node_modules/prompts/lib/dateparts/milliseconds.js create mode 100755 node_modules/prompts/lib/dateparts/minutes.js create mode 100755 node_modules/prompts/lib/dateparts/month.js create mode 100755 node_modules/prompts/lib/dateparts/seconds.js create mode 100755 node_modules/prompts/lib/dateparts/year.js create mode 100755 node_modules/prompts/lib/elements/autocomplete.js create mode 100755 node_modules/prompts/lib/elements/autocompleteMultiselect.js create mode 100755 node_modules/prompts/lib/elements/confirm.js create mode 100755 node_modules/prompts/lib/elements/date.js create mode 100755 node_modules/prompts/lib/elements/index.js create mode 100755 node_modules/prompts/lib/elements/multiselect.js create mode 100755 node_modules/prompts/lib/elements/number.js create mode 100755 node_modules/prompts/lib/elements/prompt.js create mode 100755 node_modules/prompts/lib/elements/select.js create mode 100755 node_modules/prompts/lib/elements/text.js create mode 100755 node_modules/prompts/lib/elements/toggle.js create mode 100755 node_modules/prompts/lib/index.js create mode 100755 node_modules/prompts/lib/prompts.js create mode 100755 node_modules/prompts/lib/util/action.js create mode 100755 node_modules/prompts/lib/util/clear.js create mode 100755 node_modules/prompts/lib/util/entriesToDisplay.js create mode 100755 node_modules/prompts/lib/util/figures.js create mode 100755 node_modules/prompts/lib/util/index.js create mode 100755 node_modules/prompts/lib/util/lines.js create mode 100755 node_modules/prompts/lib/util/strip.js create mode 100755 node_modules/prompts/lib/util/style.js create mode 100755 node_modules/prompts/lib/util/wrap.js create mode 100755 node_modules/prompts/license create mode 100755 node_modules/prompts/package.json create mode 100755 node_modules/prompts/readme.md mode change 100644 => 100755 node_modules/proxy-addr/HISTORY.md mode change 100644 => 100755 node_modules/proxy-addr/LICENSE mode change 100644 => 100755 node_modules/proxy-addr/README.md mode change 100644 => 100755 node_modules/proxy-addr/index.js mode change 100644 => 100755 node_modules/proxy-addr/package.json mode change 100644 => 100755 node_modules/psl/.env mode change 100644 => 100755 node_modules/psl/LICENSE mode change 100644 => 100755 node_modules/psl/README.md mode change 100644 => 100755 node_modules/psl/browserstack-logo.svg mode change 100644 => 100755 node_modules/psl/data/rules.json mode change 100644 => 100755 node_modules/psl/dist/psl.js mode change 100644 => 100755 node_modules/psl/dist/psl.min.js mode change 100644 => 100755 node_modules/psl/index.js mode change 100644 => 100755 node_modules/psl/package.json mode change 100644 => 100755 node_modules/punycode/LICENSE-MIT.txt mode change 100644 => 100755 node_modules/punycode/README.md mode change 100644 => 100755 node_modules/punycode/package.json mode change 100644 => 100755 node_modules/punycode/punycode.es6.js mode change 100644 => 100755 node_modules/punycode/punycode.js mode change 100644 => 100755 node_modules/qs/.editorconfig mode change 100644 => 100755 node_modules/qs/.eslintrc mode change 100644 => 100755 node_modules/qs/.github/FUNDING.yml mode change 100644 => 100755 node_modules/qs/.nycrc mode change 100644 => 100755 node_modules/qs/CHANGELOG.md mode change 100644 => 100755 node_modules/qs/LICENSE.md mode change 100644 => 100755 node_modules/qs/README.md mode change 100644 => 100755 node_modules/qs/dist/qs.js mode change 100644 => 100755 node_modules/qs/lib/formats.js mode change 100644 => 100755 node_modules/qs/lib/index.js mode change 100644 => 100755 node_modules/qs/lib/parse.js mode change 100644 => 100755 node_modules/qs/lib/stringify.js mode change 100644 => 100755 node_modules/qs/lib/utils.js mode change 100644 => 100755 node_modules/qs/package.json mode change 100644 => 100755 node_modules/qs/test/parse.js mode change 100644 => 100755 node_modules/qs/test/stringify.js mode change 100644 => 100755 node_modules/qs/test/utils.js mode change 100644 => 100755 node_modules/querystring/.History.md.un~ mode change 100644 => 100755 node_modules/querystring/.Readme.md.un~ mode change 100644 => 100755 node_modules/querystring/.package.json.un~ mode change 100644 => 100755 node_modules/querystring/.travis.yml mode change 100644 => 100755 node_modules/querystring/History.md mode change 100644 => 100755 node_modules/querystring/License.md mode change 100644 => 100755 node_modules/querystring/Readme.md mode change 100644 => 100755 node_modules/querystring/decode.js mode change 100644 => 100755 node_modules/querystring/encode.js mode change 100644 => 100755 node_modules/querystring/index.js mode change 100644 => 100755 node_modules/querystring/package.json mode change 100644 => 100755 node_modules/querystring/test/.index.js.un~ mode change 100644 => 100755 node_modules/querystring/test/common-index.js mode change 100644 => 100755 node_modules/querystring/test/index.js mode change 100644 => 100755 node_modules/querystring/test/tap-index.js mode change 100644 => 100755 node_modules/querystringify/LICENSE mode change 100644 => 100755 node_modules/querystringify/README.md mode change 100644 => 100755 node_modules/querystringify/index.js mode change 100644 => 100755 node_modules/querystringify/package.json mode change 100644 => 100755 node_modules/range-parser/HISTORY.md mode change 100644 => 100755 node_modules/range-parser/LICENSE mode change 100644 => 100755 node_modules/range-parser/README.md mode change 100644 => 100755 node_modules/range-parser/index.js mode change 100644 => 100755 node_modules/range-parser/package.json mode change 100644 => 100755 node_modules/raw-body/HISTORY.md mode change 100644 => 100755 node_modules/raw-body/LICENSE mode change 100644 => 100755 node_modules/raw-body/README.md mode change 100644 => 100755 node_modules/raw-body/SECURITY.md mode change 100644 => 100755 node_modules/raw-body/index.d.ts mode change 100644 => 100755 node_modules/raw-body/index.js mode change 100644 => 100755 node_modules/raw-body/package.json create mode 100755 node_modules/react-is/LICENSE create mode 100755 node_modules/react-is/README.md create mode 100755 node_modules/react-is/cjs/react-is.development.js create mode 100755 node_modules/react-is/cjs/react-is.production.min.js create mode 100755 node_modules/react-is/index.js create mode 100755 node_modules/react-is/package.json create mode 100755 node_modules/react-is/umd/react-is.development.js create mode 100755 node_modules/react-is/umd/react-is.production.min.js create mode 100755 node_modules/require-directory/.jshintrc create mode 100755 node_modules/require-directory/.npmignore create mode 100755 node_modules/require-directory/.travis.yml create mode 100755 node_modules/require-directory/LICENSE create mode 100755 node_modules/require-directory/README.markdown create mode 100755 node_modules/require-directory/index.js create mode 100755 node_modules/require-directory/package.json mode change 100644 => 100755 node_modules/requires-port/.npmignore mode change 100644 => 100755 node_modules/requires-port/.travis.yml mode change 100644 => 100755 node_modules/requires-port/LICENSE mode change 100644 => 100755 node_modules/requires-port/README.md mode change 100644 => 100755 node_modules/requires-port/index.js mode change 100644 => 100755 node_modules/requires-port/package.json mode change 100644 => 100755 node_modules/requires-port/test.js create mode 100755 node_modules/resolve-cwd/index.d.ts create mode 100755 node_modules/resolve-cwd/index.js create mode 100755 node_modules/resolve-cwd/license create mode 100755 node_modules/resolve-cwd/package.json create mode 100755 node_modules/resolve-cwd/readme.md create mode 100755 node_modules/resolve-from/index.d.ts create mode 100755 node_modules/resolve-from/index.js create mode 100755 node_modules/resolve-from/license create mode 100755 node_modules/resolve-from/package.json create mode 100755 node_modules/resolve-from/readme.md create mode 100755 node_modules/resolve.exports/dist/index.js create mode 100755 node_modules/resolve.exports/dist/index.mjs create mode 100755 node_modules/resolve.exports/index.d.ts create mode 100755 node_modules/resolve.exports/license create mode 100755 node_modules/resolve.exports/package.json create mode 100755 node_modules/resolve.exports/readme.md create mode 100755 node_modules/resolve/.editorconfig create mode 100755 node_modules/resolve/.eslintrc create mode 100755 node_modules/resolve/.github/FUNDING.yml create mode 100755 node_modules/resolve/LICENSE create mode 100755 node_modules/resolve/SECURITY.md create mode 100755 node_modules/resolve/async.js create mode 100755 node_modules/resolve/bin/resolve create mode 100755 node_modules/resolve/example/async.js create mode 100755 node_modules/resolve/example/sync.js create mode 100755 node_modules/resolve/index.js create mode 100755 node_modules/resolve/lib/async.js create mode 100755 node_modules/resolve/lib/caller.js create mode 100755 node_modules/resolve/lib/core.js create mode 100755 node_modules/resolve/lib/core.json create mode 100755 node_modules/resolve/lib/homedir.js create mode 100755 node_modules/resolve/lib/is-core.js create mode 100755 node_modules/resolve/lib/node-modules-paths.js create mode 100755 node_modules/resolve/lib/normalize-options.js create mode 100755 node_modules/resolve/lib/sync.js create mode 100755 node_modules/resolve/package.json create mode 100755 node_modules/resolve/readme.markdown create mode 100755 node_modules/resolve/sync.js create mode 100755 node_modules/resolve/test/core.js create mode 100755 node_modules/resolve/test/dotdot.js create mode 100755 node_modules/resolve/test/dotdot/abc/index.js create mode 100755 node_modules/resolve/test/dotdot/index.js create mode 100755 node_modules/resolve/test/faulty_basedir.js create mode 100755 node_modules/resolve/test/filter.js create mode 100755 node_modules/resolve/test/filter_sync.js create mode 100755 node_modules/resolve/test/home_paths.js create mode 100755 node_modules/resolve/test/home_paths_sync.js create mode 100755 node_modules/resolve/test/mock.js create mode 100755 node_modules/resolve/test/mock_sync.js create mode 100755 node_modules/resolve/test/module_dir.js create mode 100755 node_modules/resolve/test/module_dir/xmodules/aaa/index.js create mode 100755 node_modules/resolve/test/module_dir/ymodules/aaa/index.js create mode 100755 node_modules/resolve/test/module_dir/zmodules/bbb/main.js create mode 100755 node_modules/resolve/test/module_dir/zmodules/bbb/package.json create mode 100755 node_modules/resolve/test/node-modules-paths.js create mode 100755 node_modules/resolve/test/node_path.js create mode 100755 node_modules/resolve/test/node_path/x/aaa/index.js create mode 100755 node_modules/resolve/test/node_path/x/ccc/index.js create mode 100755 node_modules/resolve/test/node_path/y/bbb/index.js create mode 100755 node_modules/resolve/test/node_path/y/ccc/index.js create mode 100755 node_modules/resolve/test/nonstring.js create mode 100755 node_modules/resolve/test/pathfilter.js create mode 100755 node_modules/resolve/test/pathfilter/deep_ref/main.js create mode 100755 node_modules/resolve/test/precedence.js create mode 100755 node_modules/resolve/test/precedence/aaa.js create mode 100755 node_modules/resolve/test/precedence/aaa/index.js create mode 100755 node_modules/resolve/test/precedence/aaa/main.js create mode 100755 node_modules/resolve/test/precedence/bbb.js create mode 100755 node_modules/resolve/test/precedence/bbb/main.js create mode 100755 node_modules/resolve/test/resolver.js create mode 100755 node_modules/resolve/test/resolver/baz/doom.js create mode 100755 node_modules/resolve/test/resolver/baz/package.json create mode 100755 node_modules/resolve/test/resolver/baz/quux.js create mode 100755 node_modules/resolve/test/resolver/browser_field/a.js create mode 100755 node_modules/resolve/test/resolver/browser_field/b.js create mode 100755 node_modules/resolve/test/resolver/browser_field/package.json create mode 100755 node_modules/resolve/test/resolver/cup.coffee create mode 100755 node_modules/resolve/test/resolver/dot_main/index.js create mode 100755 node_modules/resolve/test/resolver/dot_main/package.json create mode 100755 node_modules/resolve/test/resolver/dot_slash_main/index.js create mode 100755 node_modules/resolve/test/resolver/dot_slash_main/package.json create mode 100755 node_modules/resolve/test/resolver/false_main/index.js create mode 100755 node_modules/resolve/test/resolver/false_main/package.json create mode 100755 node_modules/resolve/test/resolver/foo.js create mode 100755 node_modules/resolve/test/resolver/incorrect_main/index.js create mode 100755 node_modules/resolve/test/resolver/incorrect_main/package.json create mode 100755 node_modules/resolve/test/resolver/invalid_main/package.json create mode 100755 node_modules/resolve/test/resolver/malformed_package_json/index.js create mode 100755 node_modules/resolve/test/resolver/malformed_package_json/package.json create mode 100755 node_modules/resolve/test/resolver/mug.coffee create mode 100755 node_modules/resolve/test/resolver/mug.js create mode 100755 node_modules/resolve/test/resolver/multirepo/lerna.json create mode 100755 node_modules/resolve/test/resolver/multirepo/package.json create mode 100755 node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js create mode 100755 node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json create mode 100755 node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js create mode 100755 node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json create mode 100755 node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js create mode 100755 node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json create mode 100755 node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js create mode 100755 node_modules/resolve/test/resolver/other_path/lib/other-lib.js create mode 100755 node_modules/resolve/test/resolver/other_path/root.js create mode 100755 node_modules/resolve/test/resolver/quux/foo/index.js create mode 100755 node_modules/resolve/test/resolver/same_names/foo.js create mode 100755 node_modules/resolve/test/resolver/same_names/foo/index.js create mode 100755 node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js create mode 100755 node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep create mode 100755 node_modules/resolve/test/resolver/symlinked/package/bar.js create mode 100755 node_modules/resolve/test/resolver/symlinked/package/package.json create mode 100755 node_modules/resolve/test/resolver/without_basedir/main.js create mode 100755 node_modules/resolve/test/resolver_sync.js create mode 100755 node_modules/resolve/test/shadowed_core.js create mode 100755 node_modules/resolve/test/shadowed_core/node_modules/util/index.js create mode 100755 node_modules/resolve/test/subdirs.js create mode 100755 node_modules/resolve/test/symlinks.js mode change 100644 => 100755 node_modules/safe-buffer/LICENSE mode change 100644 => 100755 node_modules/safe-buffer/README.md mode change 100644 => 100755 node_modules/safe-buffer/index.d.ts mode change 100644 => 100755 node_modules/safe-buffer/index.js mode change 100644 => 100755 node_modules/safe-buffer/package.json mode change 100644 => 100755 node_modules/safer-buffer/LICENSE mode change 100644 => 100755 node_modules/safer-buffer/Porting-Buffer.md mode change 100644 => 100755 node_modules/safer-buffer/Readme.md mode change 100644 => 100755 node_modules/safer-buffer/dangerous.js mode change 100644 => 100755 node_modules/safer-buffer/package.json mode change 100644 => 100755 node_modules/safer-buffer/safer.js mode change 100644 => 100755 node_modules/safer-buffer/tests.js mode change 100644 => 100755 node_modules/saxes/README.md mode change 100644 => 100755 node_modules/saxes/package.json mode change 100644 => 100755 node_modules/saxes/saxes.d.ts mode change 100644 => 100755 node_modules/saxes/saxes.js mode change 100644 => 100755 node_modules/saxes/saxes.js.map create mode 100755 node_modules/semver/CHANGELOG.md create mode 100755 node_modules/semver/LICENSE create mode 100755 node_modules/semver/README.md create mode 100755 node_modules/semver/bin/semver.js create mode 100755 node_modules/semver/package.json create mode 100755 node_modules/semver/range.bnf create mode 100755 node_modules/semver/semver.js mode change 100644 => 100755 node_modules/send/HISTORY.md mode change 100644 => 100755 node_modules/send/LICENSE mode change 100644 => 100755 node_modules/send/README.md mode change 100644 => 100755 node_modules/send/SECURITY.md mode change 100644 => 100755 node_modules/send/index.js mode change 100644 => 100755 node_modules/send/node_modules/ms/index.js mode change 100644 => 100755 node_modules/send/node_modules/ms/license.md mode change 100644 => 100755 node_modules/send/node_modules/ms/package.json mode change 100644 => 100755 node_modules/send/node_modules/ms/readme.md mode change 100644 => 100755 node_modules/send/package.json mode change 100644 => 100755 node_modules/serve-static/HISTORY.md mode change 100644 => 100755 node_modules/serve-static/LICENSE mode change 100644 => 100755 node_modules/serve-static/README.md mode change 100644 => 100755 node_modules/serve-static/index.js mode change 100644 => 100755 node_modules/serve-static/package.json mode change 100644 => 100755 node_modules/setprototypeof/LICENSE mode change 100644 => 100755 node_modules/setprototypeof/README.md mode change 100644 => 100755 node_modules/setprototypeof/index.d.ts mode change 100644 => 100755 node_modules/setprototypeof/index.js mode change 100644 => 100755 node_modules/setprototypeof/package.json mode change 100644 => 100755 node_modules/setprototypeof/test/index.js create mode 100755 node_modules/shebang-command/index.js create mode 100755 node_modules/shebang-command/license create mode 100755 node_modules/shebang-command/package.json create mode 100755 node_modules/shebang-command/readme.md create mode 100755 node_modules/shebang-regex/index.d.ts create mode 100755 node_modules/shebang-regex/index.js create mode 100755 node_modules/shebang-regex/license create mode 100755 node_modules/shebang-regex/package.json create mode 100755 node_modules/shebang-regex/readme.md mode change 100644 => 100755 node_modules/side-channel/.eslintignore mode change 100644 => 100755 node_modules/side-channel/.eslintrc mode change 100644 => 100755 node_modules/side-channel/.github/FUNDING.yml mode change 100644 => 100755 node_modules/side-channel/.nycrc mode change 100644 => 100755 node_modules/side-channel/CHANGELOG.md mode change 100644 => 100755 node_modules/side-channel/LICENSE mode change 100644 => 100755 node_modules/side-channel/README.md mode change 100644 => 100755 node_modules/side-channel/index.js mode change 100644 => 100755 node_modules/side-channel/package.json mode change 100644 => 100755 node_modules/side-channel/test/index.js create mode 100755 node_modules/signal-exit/LICENSE.txt create mode 100755 node_modules/signal-exit/README.md create mode 100755 node_modules/signal-exit/index.js create mode 100755 node_modules/signal-exit/package.json create mode 100755 node_modules/signal-exit/signals.js create mode 100755 node_modules/sisteransi/license create mode 100755 node_modules/sisteransi/package.json create mode 100755 node_modules/sisteransi/readme.md create mode 100755 node_modules/sisteransi/src/index.js create mode 100755 node_modules/sisteransi/src/sisteransi.d.ts create mode 100755 node_modules/slash/index.d.ts create mode 100755 node_modules/slash/index.js create mode 100755 node_modules/slash/license create mode 100755 node_modules/slash/package.json create mode 100755 node_modules/slash/readme.md create mode 100755 node_modules/source-map-support/LICENSE.md create mode 100755 node_modules/source-map-support/README.md create mode 100755 node_modules/source-map-support/browser-source-map-support.js create mode 100755 node_modules/source-map-support/package.json create mode 100755 node_modules/source-map-support/register.js create mode 100755 node_modules/source-map-support/source-map-support.js mode change 100644 => 100755 node_modules/source-map/CHANGELOG.md mode change 100644 => 100755 node_modules/source-map/LICENSE mode change 100644 => 100755 node_modules/source-map/README.md mode change 100644 => 100755 node_modules/source-map/dist/source-map.debug.js mode change 100644 => 100755 node_modules/source-map/dist/source-map.js mode change 100644 => 100755 node_modules/source-map/dist/source-map.min.js mode change 100644 => 100755 node_modules/source-map/dist/source-map.min.js.map mode change 100644 => 100755 node_modules/source-map/lib/array-set.js mode change 100644 => 100755 node_modules/source-map/lib/base64-vlq.js mode change 100644 => 100755 node_modules/source-map/lib/base64.js mode change 100644 => 100755 node_modules/source-map/lib/binary-search.js mode change 100644 => 100755 node_modules/source-map/lib/mapping-list.js mode change 100644 => 100755 node_modules/source-map/lib/quick-sort.js mode change 100644 => 100755 node_modules/source-map/lib/source-map-consumer.js mode change 100644 => 100755 node_modules/source-map/lib/source-map-generator.js mode change 100644 => 100755 node_modules/source-map/lib/source-node.js mode change 100644 => 100755 node_modules/source-map/lib/util.js mode change 100644 => 100755 node_modules/source-map/package.json mode change 100644 => 100755 node_modules/source-map/source-map.d.ts mode change 100644 => 100755 node_modules/source-map/source-map.js create mode 100755 node_modules/sprintf-js/.npmignore create mode 100755 node_modules/sprintf-js/LICENSE create mode 100755 node_modules/sprintf-js/README.md create mode 100755 node_modules/sprintf-js/bower.json create mode 100755 node_modules/sprintf-js/demo/angular.html create mode 100755 node_modules/sprintf-js/dist/angular-sprintf.min.js create mode 100755 node_modules/sprintf-js/dist/angular-sprintf.min.js.map create mode 100755 node_modules/sprintf-js/dist/angular-sprintf.min.map create mode 100755 node_modules/sprintf-js/dist/sprintf.min.js create mode 100755 node_modules/sprintf-js/dist/sprintf.min.js.map create mode 100755 node_modules/sprintf-js/dist/sprintf.min.map create mode 100755 node_modules/sprintf-js/gruntfile.js create mode 100755 node_modules/sprintf-js/package.json create mode 100755 node_modules/sprintf-js/src/angular-sprintf.js create mode 100755 node_modules/sprintf-js/src/sprintf.js create mode 100755 node_modules/sprintf-js/test/test.js create mode 100755 node_modules/stack-utils/LICENSE.md create mode 100755 node_modules/stack-utils/index.js create mode 100755 node_modules/stack-utils/package.json create mode 100755 node_modules/stack-utils/readme.md mode change 100644 => 100755 node_modules/statuses/HISTORY.md mode change 100644 => 100755 node_modules/statuses/LICENSE mode change 100644 => 100755 node_modules/statuses/README.md mode change 100644 => 100755 node_modules/statuses/codes.json mode change 100644 => 100755 node_modules/statuses/index.js mode change 100644 => 100755 node_modules/statuses/package.json create mode 100755 node_modules/string-length/index.d.ts create mode 100755 node_modules/string-length/index.js create mode 100755 node_modules/string-length/license create mode 100755 node_modules/string-length/package.json create mode 100755 node_modules/string-length/readme.md create mode 100755 node_modules/string-width/index.d.ts create mode 100755 node_modules/string-width/index.js create mode 100755 node_modules/string-width/license create mode 100755 node_modules/string-width/package.json create mode 100755 node_modules/string-width/readme.md create mode 100755 node_modules/strip-ansi/index.d.ts create mode 100755 node_modules/strip-ansi/index.js create mode 100755 node_modules/strip-ansi/license create mode 100755 node_modules/strip-ansi/package.json create mode 100755 node_modules/strip-ansi/readme.md create mode 100755 node_modules/strip-bom/index.d.ts create mode 100755 node_modules/strip-bom/index.js create mode 100755 node_modules/strip-bom/license create mode 100755 node_modules/strip-bom/package.json create mode 100755 node_modules/strip-bom/readme.md create mode 100755 node_modules/strip-final-newline/index.js create mode 100755 node_modules/strip-final-newline/license create mode 100755 node_modules/strip-final-newline/package.json create mode 100755 node_modules/strip-final-newline/readme.md create mode 100755 node_modules/strip-json-comments/index.d.ts create mode 100755 node_modules/strip-json-comments/index.js create mode 100755 node_modules/strip-json-comments/license create mode 100755 node_modules/strip-json-comments/package.json create mode 100755 node_modules/strip-json-comments/readme.md create mode 100755 node_modules/supports-color/browser.js create mode 100755 node_modules/supports-color/index.js create mode 100755 node_modules/supports-color/license create mode 100755 node_modules/supports-color/package.json create mode 100755 node_modules/supports-color/readme.md create mode 100755 node_modules/supports-preserve-symlinks-flag/.eslintrc create mode 100755 node_modules/supports-preserve-symlinks-flag/.github/FUNDING.yml create mode 100755 node_modules/supports-preserve-symlinks-flag/.nycrc create mode 100755 node_modules/supports-preserve-symlinks-flag/CHANGELOG.md create mode 100755 node_modules/supports-preserve-symlinks-flag/LICENSE create mode 100755 node_modules/supports-preserve-symlinks-flag/README.md create mode 100755 node_modules/supports-preserve-symlinks-flag/browser.js create mode 100755 node_modules/supports-preserve-symlinks-flag/index.js create mode 100755 node_modules/supports-preserve-symlinks-flag/package.json create mode 100755 node_modules/supports-preserve-symlinks-flag/test/index.js mode change 100644 => 100755 node_modules/symbol-tree/LICENSE mode change 100644 => 100755 node_modules/symbol-tree/README.md mode change 100644 => 100755 node_modules/symbol-tree/lib/SymbolTree.js mode change 100644 => 100755 node_modules/symbol-tree/lib/SymbolTreeNode.js mode change 100644 => 100755 node_modules/symbol-tree/lib/TreeIterator.js mode change 100644 => 100755 node_modules/symbol-tree/lib/TreePosition.js mode change 100644 => 100755 node_modules/symbol-tree/package.json create mode 100755 node_modules/test-exclude/CHANGELOG.md create mode 100755 node_modules/test-exclude/LICENSE.txt create mode 100755 node_modules/test-exclude/README.md create mode 100755 node_modules/test-exclude/index.js create mode 100755 node_modules/test-exclude/is-outside-dir-posix.js create mode 100755 node_modules/test-exclude/is-outside-dir-win32.js create mode 100755 node_modules/test-exclude/is-outside-dir.js create mode 100755 node_modules/test-exclude/package.json create mode 100755 node_modules/tmpl/lib/tmpl.js create mode 100755 node_modules/tmpl/license create mode 100755 node_modules/tmpl/package.json create mode 100755 node_modules/tmpl/readme.md create mode 100755 node_modules/to-fast-properties/index.js create mode 100755 node_modules/to-fast-properties/license create mode 100755 node_modules/to-fast-properties/package.json create mode 100755 node_modules/to-fast-properties/readme.md create mode 100755 node_modules/to-regex-range/LICENSE create mode 100755 node_modules/to-regex-range/README.md create mode 100755 node_modules/to-regex-range/index.js create mode 100755 node_modules/to-regex-range/package.json mode change 100644 => 100755 node_modules/toidentifier/HISTORY.md mode change 100644 => 100755 node_modules/toidentifier/LICENSE mode change 100644 => 100755 node_modules/toidentifier/README.md mode change 100644 => 100755 node_modules/toidentifier/index.js mode change 100644 => 100755 node_modules/toidentifier/package.json mode change 100644 => 100755 node_modules/tough-cookie/LICENSE mode change 100644 => 100755 node_modules/tough-cookie/README.md mode change 100644 => 100755 node_modules/tough-cookie/lib/cookie.js mode change 100644 => 100755 node_modules/tough-cookie/lib/memstore.js mode change 100644 => 100755 node_modules/tough-cookie/lib/pathMatch.js mode change 100644 => 100755 node_modules/tough-cookie/lib/permuteDomain.js mode change 100644 => 100755 node_modules/tough-cookie/lib/pubsuffix-psl.js mode change 100644 => 100755 node_modules/tough-cookie/lib/store.js mode change 100644 => 100755 node_modules/tough-cookie/lib/utilHelper.js mode change 100644 => 100755 node_modules/tough-cookie/lib/validators.js mode change 100644 => 100755 node_modules/tough-cookie/lib/version.js mode change 100644 => 100755 node_modules/tough-cookie/package.json mode change 100644 => 100755 node_modules/tr46/LICENSE.md mode change 100644 => 100755 node_modules/tr46/README.md mode change 100644 => 100755 node_modules/tr46/index.js mode change 100644 => 100755 node_modules/tr46/lib/mappingTable.json mode change 100644 => 100755 node_modules/tr46/lib/regexes.js mode change 100644 => 100755 node_modules/tr46/lib/statusMapping.js mode change 100644 => 100755 node_modules/tr46/package.json mode change 100644 => 100755 node_modules/turndown/LICENSE mode change 100644 => 100755 node_modules/turndown/README.md mode change 100644 => 100755 node_modules/turndown/dist/turndown.js mode change 100644 => 100755 node_modules/turndown/lib/turndown.browser.cjs.js mode change 100644 => 100755 node_modules/turndown/lib/turndown.browser.es.js mode change 100644 => 100755 node_modules/turndown/lib/turndown.browser.umd.js mode change 100644 => 100755 node_modules/turndown/lib/turndown.cjs.js mode change 100644 => 100755 node_modules/turndown/lib/turndown.es.js mode change 100644 => 100755 node_modules/turndown/lib/turndown.umd.js mode change 100644 => 100755 node_modules/turndown/package.json mode change 100644 => 100755 node_modules/type-check/LICENSE mode change 100644 => 100755 node_modules/type-check/README.md mode change 100644 => 100755 node_modules/type-check/lib/check.js mode change 100644 => 100755 node_modules/type-check/lib/index.js mode change 100644 => 100755 node_modules/type-check/lib/parse-type.js mode change 100644 => 100755 node_modules/type-check/package.json create mode 100755 node_modules/type-detect/LICENSE create mode 100755 node_modules/type-detect/README.md create mode 100755 node_modules/type-detect/index.js create mode 100755 node_modules/type-detect/package.json create mode 100755 node_modules/type-detect/type-detect.js create mode 100755 node_modules/type-fest/base.d.ts create mode 100755 node_modules/type-fest/index.d.ts create mode 100755 node_modules/type-fest/license create mode 100755 node_modules/type-fest/package.json create mode 100755 node_modules/type-fest/readme.md create mode 100755 node_modules/type-fest/source/async-return-type.d.ts create mode 100755 node_modules/type-fest/source/asyncify.d.ts create mode 100755 node_modules/type-fest/source/basic.d.ts create mode 100755 node_modules/type-fest/source/conditional-except.d.ts create mode 100755 node_modules/type-fest/source/conditional-keys.d.ts create mode 100755 node_modules/type-fest/source/conditional-pick.d.ts create mode 100755 node_modules/type-fest/source/entries.d.ts create mode 100755 node_modules/type-fest/source/entry.d.ts create mode 100755 node_modules/type-fest/source/except.d.ts create mode 100755 node_modules/type-fest/source/fixed-length-array.d.ts create mode 100755 node_modules/type-fest/source/iterable-element.d.ts create mode 100755 node_modules/type-fest/source/literal-union.d.ts create mode 100755 node_modules/type-fest/source/merge-exclusive.d.ts create mode 100755 node_modules/type-fest/source/merge.d.ts create mode 100755 node_modules/type-fest/source/mutable.d.ts create mode 100755 node_modules/type-fest/source/opaque.d.ts create mode 100755 node_modules/type-fest/source/package-json.d.ts create mode 100755 node_modules/type-fest/source/partial-deep.d.ts create mode 100755 node_modules/type-fest/source/promisable.d.ts create mode 100755 node_modules/type-fest/source/promise-value.d.ts create mode 100755 node_modules/type-fest/source/readonly-deep.d.ts create mode 100755 node_modules/type-fest/source/require-at-least-one.d.ts create mode 100755 node_modules/type-fest/source/require-exactly-one.d.ts create mode 100755 node_modules/type-fest/source/set-optional.d.ts create mode 100755 node_modules/type-fest/source/set-required.d.ts create mode 100755 node_modules/type-fest/source/set-return-type.d.ts create mode 100755 node_modules/type-fest/source/simplify.d.ts create mode 100755 node_modules/type-fest/source/stringified.d.ts create mode 100755 node_modules/type-fest/source/tsconfig-json.d.ts create mode 100755 node_modules/type-fest/source/typed-array.d.ts create mode 100755 node_modules/type-fest/source/union-to-intersection.d.ts create mode 100755 node_modules/type-fest/source/utilities.d.ts create mode 100755 node_modules/type-fest/source/value-of.d.ts create mode 100755 node_modules/type-fest/ts41/camel-case.d.ts create mode 100755 node_modules/type-fest/ts41/delimiter-case.d.ts create mode 100755 node_modules/type-fest/ts41/get.d.ts create mode 100755 node_modules/type-fest/ts41/index.d.ts create mode 100755 node_modules/type-fest/ts41/kebab-case.d.ts create mode 100755 node_modules/type-fest/ts41/pascal-case.d.ts create mode 100755 node_modules/type-fest/ts41/snake-case.d.ts create mode 100755 node_modules/type-fest/ts41/utilities.d.ts mode change 100644 => 100755 node_modules/type-is/HISTORY.md mode change 100644 => 100755 node_modules/type-is/LICENSE mode change 100644 => 100755 node_modules/type-is/README.md mode change 100644 => 100755 node_modules/type-is/index.js mode change 100644 => 100755 node_modules/type-is/package.json mode change 100644 => 100755 node_modules/universalify/LICENSE mode change 100644 => 100755 node_modules/universalify/README.md mode change 100644 => 100755 node_modules/universalify/index.js mode change 100644 => 100755 node_modules/universalify/package.json mode change 100644 => 100755 node_modules/unpipe/HISTORY.md mode change 100644 => 100755 node_modules/unpipe/LICENSE mode change 100644 => 100755 node_modules/unpipe/README.md mode change 100644 => 100755 node_modules/unpipe/index.js mode change 100644 => 100755 node_modules/unpipe/package.json create mode 100755 node_modules/update-browserslist-db/LICENSE create mode 100755 node_modules/update-browserslist-db/README.md create mode 100755 node_modules/update-browserslist-db/check-npm-version.js create mode 100755 node_modules/update-browserslist-db/cli.js create mode 100755 node_modules/update-browserslist-db/index.d.ts create mode 100755 node_modules/update-browserslist-db/index.js create mode 100755 node_modules/update-browserslist-db/package.json create mode 100755 node_modules/update-browserslist-db/utils.js mode change 100644 => 100755 node_modules/url-parse/LICENSE mode change 100644 => 100755 node_modules/url-parse/README.md mode change 100644 => 100755 node_modules/url-parse/dist/url-parse.js mode change 100644 => 100755 node_modules/url-parse/dist/url-parse.min.js mode change 100644 => 100755 node_modules/url-parse/dist/url-parse.min.js.map mode change 100644 => 100755 node_modules/url-parse/index.js mode change 100644 => 100755 node_modules/url-parse/package.json mode change 100644 => 100755 node_modules/url/.npmignore mode change 100644 => 100755 node_modules/url/.travis.yml mode change 100644 => 100755 node_modules/url/.zuul.yml mode change 100644 => 100755 node_modules/url/LICENSE mode change 100644 => 100755 node_modules/url/README.md mode change 100644 => 100755 node_modules/url/node_modules/punycode/LICENSE-MIT.txt mode change 100644 => 100755 node_modules/url/node_modules/punycode/README.md mode change 100644 => 100755 node_modules/url/node_modules/punycode/package.json mode change 100644 => 100755 node_modules/url/node_modules/punycode/punycode.js mode change 100644 => 100755 node_modules/url/package.json mode change 100644 => 100755 node_modules/url/test.js mode change 100644 => 100755 node_modules/url/url.js mode change 100644 => 100755 node_modules/url/util.js mode change 100644 => 100755 node_modules/utils-merge/.npmignore mode change 100644 => 100755 node_modules/utils-merge/LICENSE mode change 100644 => 100755 node_modules/utils-merge/README.md mode change 100644 => 100755 node_modules/utils-merge/index.js mode change 100644 => 100755 node_modules/utils-merge/package.json create mode 100755 node_modules/v8-to-istanbul/CHANGELOG.md create mode 100755 node_modules/v8-to-istanbul/LICENSE.txt create mode 100755 node_modules/v8-to-istanbul/README.md create mode 100755 node_modules/v8-to-istanbul/index.d.ts create mode 100755 node_modules/v8-to-istanbul/index.js create mode 100755 node_modules/v8-to-istanbul/lib/branch.js create mode 100755 node_modules/v8-to-istanbul/lib/function.js create mode 100755 node_modules/v8-to-istanbul/lib/line.js create mode 100755 node_modules/v8-to-istanbul/lib/range.js create mode 100755 node_modules/v8-to-istanbul/lib/source.js create mode 100755 node_modules/v8-to-istanbul/lib/v8-to-istanbul.js create mode 100755 node_modules/v8-to-istanbul/node_modules/convert-source-map/LICENSE create mode 100755 node_modules/v8-to-istanbul/node_modules/convert-source-map/README.md create mode 100755 node_modules/v8-to-istanbul/node_modules/convert-source-map/index.js create mode 100755 node_modules/v8-to-istanbul/node_modules/convert-source-map/package.json create mode 100755 node_modules/v8-to-istanbul/package.json mode change 100644 => 100755 node_modules/vary/HISTORY.md mode change 100644 => 100755 node_modules/vary/LICENSE mode change 100644 => 100755 node_modules/vary/README.md mode change 100644 => 100755 node_modules/vary/index.js mode change 100644 => 100755 node_modules/vary/package.json mode change 100644 => 100755 node_modules/w3c-hr-time/CHANGELOG.md mode change 100644 => 100755 node_modules/w3c-hr-time/LICENSE.md mode change 100644 => 100755 node_modules/w3c-hr-time/README.md mode change 100644 => 100755 node_modules/w3c-hr-time/index.js mode change 100644 => 100755 node_modules/w3c-hr-time/lib/calculate-clock-offset.js mode change 100644 => 100755 node_modules/w3c-hr-time/lib/clock-is-accurate.js mode change 100644 => 100755 node_modules/w3c-hr-time/lib/global-monotonic-clock.js mode change 100644 => 100755 node_modules/w3c-hr-time/lib/performance.js mode change 100644 => 100755 node_modules/w3c-hr-time/lib/utils.js mode change 100644 => 100755 node_modules/w3c-hr-time/package.json mode change 100644 => 100755 node_modules/w3c-xmlserializer/LICENSE.md mode change 100644 => 100755 node_modules/w3c-xmlserializer/README.md mode change 100644 => 100755 node_modules/w3c-xmlserializer/lib/attributes.js mode change 100644 => 100755 node_modules/w3c-xmlserializer/lib/constants.js mode change 100644 => 100755 node_modules/w3c-xmlserializer/lib/serialize.js mode change 100644 => 100755 node_modules/w3c-xmlserializer/package.json create mode 100755 node_modules/walker/.travis.yml create mode 100755 node_modules/walker/LICENSE create mode 100755 node_modules/walker/lib/walker.js create mode 100755 node_modules/walker/package.json create mode 100755 node_modules/walker/readme.md mode change 100644 => 100755 node_modules/webidl-conversions/LICENSE.md mode change 100644 => 100755 node_modules/webidl-conversions/README.md mode change 100644 => 100755 node_modules/webidl-conversions/lib/index.js mode change 100644 => 100755 node_modules/webidl-conversions/package.json mode change 100644 => 100755 node_modules/whatwg-encoding/LICENSE.txt mode change 100644 => 100755 node_modules/whatwg-encoding/README.md mode change 100644 => 100755 node_modules/whatwg-encoding/lib/labels-to-names.json mode change 100644 => 100755 node_modules/whatwg-encoding/lib/supported-names.json mode change 100644 => 100755 node_modules/whatwg-encoding/lib/whatwg-encoding.js mode change 100644 => 100755 node_modules/whatwg-encoding/package.json mode change 100644 => 100755 node_modules/whatwg-mimetype/LICENSE.txt mode change 100644 => 100755 node_modules/whatwg-mimetype/README.md mode change 100644 => 100755 node_modules/whatwg-mimetype/lib/mime-type.js mode change 100644 => 100755 node_modules/whatwg-mimetype/lib/parser.js mode change 100644 => 100755 node_modules/whatwg-mimetype/lib/serializer.js mode change 100644 => 100755 node_modules/whatwg-mimetype/lib/utils.js mode change 100644 => 100755 node_modules/whatwg-mimetype/package.json mode change 100644 => 100755 node_modules/whatwg-url/LICENSE.txt mode change 100644 => 100755 node_modules/whatwg-url/README.md mode change 100644 => 100755 node_modules/whatwg-url/dist/Function.js mode change 100644 => 100755 node_modules/whatwg-url/dist/URL-impl.js mode change 100644 => 100755 node_modules/whatwg-url/dist/URL.js mode change 100644 => 100755 node_modules/whatwg-url/dist/URLSearchParams-impl.js mode change 100644 => 100755 node_modules/whatwg-url/dist/URLSearchParams.js mode change 100644 => 100755 node_modules/whatwg-url/dist/VoidFunction.js mode change 100644 => 100755 node_modules/whatwg-url/dist/encoding.js mode change 100644 => 100755 node_modules/whatwg-url/dist/infra.js mode change 100644 => 100755 node_modules/whatwg-url/dist/percent-encoding.js mode change 100644 => 100755 node_modules/whatwg-url/dist/url-state-machine.js mode change 100644 => 100755 node_modules/whatwg-url/dist/urlencoded.js mode change 100644 => 100755 node_modules/whatwg-url/dist/utils.js mode change 100644 => 100755 node_modules/whatwg-url/index.js mode change 100644 => 100755 node_modules/whatwg-url/package.json mode change 100644 => 100755 node_modules/whatwg-url/webidl2js-wrapper.js create mode 100755 node_modules/which/CHANGELOG.md create mode 100755 node_modules/which/LICENSE create mode 100755 node_modules/which/README.md create mode 100755 node_modules/which/bin/node-which create mode 100755 node_modules/which/package.json create mode 100755 node_modules/which/which.js mode change 100644 => 100755 node_modules/word-wrap/LICENSE mode change 100644 => 100755 node_modules/word-wrap/README.md mode change 100644 => 100755 node_modules/word-wrap/index.d.ts mode change 100644 => 100755 node_modules/word-wrap/index.js mode change 100644 => 100755 node_modules/word-wrap/package.json create mode 100755 node_modules/wrap-ansi/index.js create mode 100755 node_modules/wrap-ansi/license create mode 100755 node_modules/wrap-ansi/package.json create mode 100755 node_modules/wrap-ansi/readme.md create mode 100755 node_modules/wrappy/LICENSE create mode 100755 node_modules/wrappy/README.md create mode 100755 node_modules/wrappy/package.json create mode 100755 node_modules/wrappy/wrappy.js create mode 100755 node_modules/write-file-atomic/LICENSE.md create mode 100755 node_modules/write-file-atomic/README.md create mode 100755 node_modules/write-file-atomic/lib/index.js create mode 100755 node_modules/write-file-atomic/package.json mode change 100644 => 100755 node_modules/ws/LICENSE mode change 100644 => 100755 node_modules/ws/README.md mode change 100644 => 100755 node_modules/ws/browser.js mode change 100644 => 100755 node_modules/ws/index.js mode change 100644 => 100755 node_modules/ws/lib/buffer-util.js mode change 100644 => 100755 node_modules/ws/lib/constants.js mode change 100644 => 100755 node_modules/ws/lib/event-target.js mode change 100644 => 100755 node_modules/ws/lib/extension.js mode change 100644 => 100755 node_modules/ws/lib/limiter.js mode change 100644 => 100755 node_modules/ws/lib/permessage-deflate.js mode change 100644 => 100755 node_modules/ws/lib/receiver.js mode change 100644 => 100755 node_modules/ws/lib/sender.js mode change 100644 => 100755 node_modules/ws/lib/stream.js mode change 100644 => 100755 node_modules/ws/lib/validation.js mode change 100644 => 100755 node_modules/ws/lib/websocket-server.js mode change 100644 => 100755 node_modules/ws/lib/websocket.js mode change 100644 => 100755 node_modules/ws/package.json mode change 100644 => 100755 node_modules/xml-name-validator/LICENSE.txt mode change 100644 => 100755 node_modules/xml-name-validator/README.md mode change 100644 => 100755 node_modules/xml-name-validator/lib/generated-parser.js mode change 100644 => 100755 node_modules/xml-name-validator/lib/grammar.pegjs mode change 100644 => 100755 node_modules/xml-name-validator/lib/xml-name-validator.js mode change 100644 => 100755 node_modules/xml-name-validator/package.json mode change 100644 => 100755 node_modules/xmlchars/LICENSE mode change 100644 => 100755 node_modules/xmlchars/README.md mode change 100644 => 100755 node_modules/xmlchars/package.json mode change 100644 => 100755 node_modules/xmlchars/xml/1.0/ed4.d.ts mode change 100644 => 100755 node_modules/xmlchars/xml/1.0/ed4.js mode change 100644 => 100755 node_modules/xmlchars/xml/1.0/ed4.js.map mode change 100644 => 100755 node_modules/xmlchars/xml/1.0/ed5.d.ts mode change 100644 => 100755 node_modules/xmlchars/xml/1.0/ed5.js mode change 100644 => 100755 node_modules/xmlchars/xml/1.0/ed5.js.map mode change 100644 => 100755 node_modules/xmlchars/xml/1.1/ed2.d.ts mode change 100644 => 100755 node_modules/xmlchars/xml/1.1/ed2.js mode change 100644 => 100755 node_modules/xmlchars/xml/1.1/ed2.js.map mode change 100644 => 100755 node_modules/xmlchars/xmlchars.d.ts mode change 100644 => 100755 node_modules/xmlchars/xmlchars.js mode change 100644 => 100755 node_modules/xmlchars/xmlchars.js.map mode change 100644 => 100755 node_modules/xmlchars/xmlns/1.0/ed3.d.ts mode change 100644 => 100755 node_modules/xmlchars/xmlns/1.0/ed3.js mode change 100644 => 100755 node_modules/xmlchars/xmlns/1.0/ed3.js.map create mode 100755 node_modules/y18n/CHANGELOG.md create mode 100755 node_modules/y18n/LICENSE create mode 100755 node_modules/y18n/README.md create mode 100755 node_modules/y18n/build/index.cjs create mode 100755 node_modules/y18n/build/lib/cjs.js create mode 100755 node_modules/y18n/build/lib/index.js create mode 100755 node_modules/y18n/build/lib/platform-shims/node.js create mode 100755 node_modules/y18n/index.mjs create mode 100755 node_modules/y18n/package.json create mode 100755 node_modules/yallist/LICENSE create mode 100755 node_modules/yallist/README.md create mode 100755 node_modules/yallist/iterator.js create mode 100755 node_modules/yallist/package.json create mode 100755 node_modules/yallist/yallist.js create mode 100755 node_modules/yargs-parser/CHANGELOG.md create mode 100755 node_modules/yargs-parser/LICENSE.txt create mode 100755 node_modules/yargs-parser/README.md create mode 100755 node_modules/yargs-parser/browser.js create mode 100755 node_modules/yargs-parser/build/index.cjs create mode 100755 node_modules/yargs-parser/build/lib/index.js create mode 100755 node_modules/yargs-parser/build/lib/string-utils.js create mode 100755 node_modules/yargs-parser/build/lib/tokenize-arg-string.js create mode 100755 node_modules/yargs-parser/build/lib/yargs-parser-types.js create mode 100755 node_modules/yargs-parser/build/lib/yargs-parser.js create mode 100755 node_modules/yargs-parser/package.json create mode 100755 node_modules/yargs/LICENSE create mode 100755 node_modules/yargs/README.md create mode 100755 node_modules/yargs/browser.mjs create mode 100755 node_modules/yargs/build/index.cjs create mode 100755 node_modules/yargs/build/lib/argsert.js create mode 100755 node_modules/yargs/build/lib/command.js create mode 100755 node_modules/yargs/build/lib/completion-templates.js create mode 100755 node_modules/yargs/build/lib/completion.js create mode 100755 node_modules/yargs/build/lib/middleware.js create mode 100755 node_modules/yargs/build/lib/parse-command.js create mode 100755 node_modules/yargs/build/lib/typings/common-types.js create mode 100755 node_modules/yargs/build/lib/typings/yargs-parser-types.js create mode 100755 node_modules/yargs/build/lib/usage.js create mode 100755 node_modules/yargs/build/lib/utils/apply-extends.js create mode 100755 node_modules/yargs/build/lib/utils/is-promise.js create mode 100755 node_modules/yargs/build/lib/utils/levenshtein.js create mode 100755 node_modules/yargs/build/lib/utils/maybe-async-result.js create mode 100755 node_modules/yargs/build/lib/utils/obj-filter.js create mode 100755 node_modules/yargs/build/lib/utils/process-argv.js create mode 100755 node_modules/yargs/build/lib/utils/set-blocking.js create mode 100755 node_modules/yargs/build/lib/utils/which-module.js create mode 100755 node_modules/yargs/build/lib/validation.js create mode 100755 node_modules/yargs/build/lib/yargs-factory.js create mode 100755 node_modules/yargs/build/lib/yerror.js create mode 100755 node_modules/yargs/helpers/helpers.mjs create mode 100755 node_modules/yargs/helpers/index.js create mode 100755 node_modules/yargs/helpers/package.json create mode 100755 node_modules/yargs/index.cjs create mode 100755 node_modules/yargs/index.mjs create mode 100755 node_modules/yargs/lib/platform-shims/browser.mjs create mode 100755 node_modules/yargs/lib/platform-shims/esm.mjs create mode 100755 node_modules/yargs/locales/be.json create mode 100755 node_modules/yargs/locales/cs.json create mode 100755 node_modules/yargs/locales/de.json create mode 100755 node_modules/yargs/locales/en.json create mode 100755 node_modules/yargs/locales/es.json create mode 100755 node_modules/yargs/locales/fi.json create mode 100755 node_modules/yargs/locales/fr.json create mode 100755 node_modules/yargs/locales/hi.json create mode 100755 node_modules/yargs/locales/hu.json create mode 100755 node_modules/yargs/locales/id.json create mode 100755 node_modules/yargs/locales/it.json create mode 100755 node_modules/yargs/locales/ja.json create mode 100755 node_modules/yargs/locales/ko.json create mode 100755 node_modules/yargs/locales/nb.json create mode 100755 node_modules/yargs/locales/nl.json create mode 100755 node_modules/yargs/locales/nn.json create mode 100755 node_modules/yargs/locales/pirate.json create mode 100755 node_modules/yargs/locales/pl.json create mode 100755 node_modules/yargs/locales/pt.json create mode 100755 node_modules/yargs/locales/pt_BR.json create mode 100755 node_modules/yargs/locales/ru.json create mode 100755 node_modules/yargs/locales/th.json create mode 100755 node_modules/yargs/locales/tr.json create mode 100755 node_modules/yargs/locales/uk_UA.json create mode 100755 node_modules/yargs/locales/uz.json create mode 100755 node_modules/yargs/locales/zh_CN.json create mode 100755 node_modules/yargs/locales/zh_TW.json create mode 100755 node_modules/yargs/package.json create mode 100755 node_modules/yargs/yargs create mode 100755 node_modules/yargs/yargs.mjs create mode 100755 node_modules/yocto-queue/index.d.ts create mode 100755 node_modules/yocto-queue/index.js create mode 100755 node_modules/yocto-queue/license create mode 100755 node_modules/yocto-queue/package.json create mode 100755 node_modules/yocto-queue/readme.md mode change 100644 => 100755 package-lock.json create mode 100755 tests/url_to_markdown_apple_dev_docs.test.js create mode 100755 tests/url_to_markdown_common_filters.test.js create mode 100755 tests/url_to_markdown_formatters.test.js create mode 100755 tests/url_to_markdown_processor.test.js create mode 100755 tests/url_to_markdown_readers.test.js diff --git a/Dockerfile b/Dockerfile index 4a4fa55..8700713 100755 --- a/Dockerfile +++ b/Dockerfile @@ -12,4 +12,11 @@ COPY url_to_markdown_formatters.js /var/www COPY url_to_markdown_processor.js /var/www COPY url_to_markdown_readers.js /var/www COPY index.js /var/www/ +RUN mkdir -p /var/www/tests +COPY tests/url_to_markdown_apple_dev_docs.test.js /var/www/tests +COPY tests/url_to_markdown_common_filters.test.js /var/www/tests +COPY tests/url_to_markdown_formatters.test.js /var/www/tests +COPY tests/url_to_markdown_processor.test.js /var/www/tests +COPY tests/url_to_markdown_readers.test.js /var/www/tests +RUN npm test ENV PORT=1337 diff --git a/node_modules/.bin/browserslist b/node_modules/.bin/browserslist new file mode 120000 index 0000000..3cd991b --- /dev/null +++ b/node_modules/.bin/browserslist @@ -0,0 +1 @@ +../browserslist/cli.js \ No newline at end of file diff --git a/node_modules/.bin/browserslist-lint b/node_modules/.bin/browserslist-lint new file mode 120000 index 0000000..b11e16f --- /dev/null +++ b/node_modules/.bin/browserslist-lint @@ -0,0 +1 @@ +../update-browserslist-db/cli.js \ No newline at end of file diff --git a/node_modules/.bin/import-local-fixture b/node_modules/.bin/import-local-fixture new file mode 120000 index 0000000..ff4b104 --- /dev/null +++ b/node_modules/.bin/import-local-fixture @@ -0,0 +1 @@ +../import-local/fixtures/cli.js \ No newline at end of file diff --git a/node_modules/.bin/jest b/node_modules/.bin/jest new file mode 120000 index 0000000..61c1861 --- /dev/null +++ b/node_modules/.bin/jest @@ -0,0 +1 @@ +../jest/bin/jest.js \ No newline at end of file diff --git a/node_modules/.bin/js-yaml b/node_modules/.bin/js-yaml new file mode 120000 index 0000000..9dbd010 --- /dev/null +++ b/node_modules/.bin/js-yaml @@ -0,0 +1 @@ +../js-yaml/bin/js-yaml.js \ No newline at end of file diff --git a/node_modules/.bin/jsesc b/node_modules/.bin/jsesc new file mode 120000 index 0000000..7237604 --- /dev/null +++ b/node_modules/.bin/jsesc @@ -0,0 +1 @@ +../jsesc/bin/jsesc \ No newline at end of file diff --git a/node_modules/.bin/json5 b/node_modules/.bin/json5 new file mode 120000 index 0000000..217f379 --- /dev/null +++ b/node_modules/.bin/json5 @@ -0,0 +1 @@ +../json5/lib/cli.js \ No newline at end of file diff --git a/node_modules/.bin/node-which b/node_modules/.bin/node-which new file mode 120000 index 0000000..6f8415e --- /dev/null +++ b/node_modules/.bin/node-which @@ -0,0 +1 @@ +../which/bin/node-which \ No newline at end of file diff --git a/node_modules/.bin/parser b/node_modules/.bin/parser new file mode 120000 index 0000000..ce7bf97 --- /dev/null +++ b/node_modules/.bin/parser @@ -0,0 +1 @@ +../@babel/parser/bin/babel-parser.js \ No newline at end of file diff --git a/node_modules/.bin/resolve b/node_modules/.bin/resolve new file mode 120000 index 0000000..b6afda6 --- /dev/null +++ b/node_modules/.bin/resolve @@ -0,0 +1 @@ +../resolve/bin/resolve \ No newline at end of file diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver new file mode 120000 index 0000000..5aaadf4 --- /dev/null +++ b/node_modules/.bin/semver @@ -0,0 +1 @@ +../semver/bin/semver.js \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json old mode 100644 new mode 100755 index 61ccfca..3f6040e --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -9,6 +9,987 @@ "resolved": "https://registry.npmjs.org/@7c/validurl/-/validurl-0.0.3.tgz", "integrity": "sha512-hmy54tf9ANyD2Iy0F6w0tF+jLwMDvpUWRD+jsSppinIINsre74IOlU79M6BdZLdcFoz9CNDVX6XofOT7O5ne8w==" }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.7.tgz", + "integrity": "sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.7", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/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/@babel/core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/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==", + "dev": true + }, + "node_modules/@babel/generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "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/@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.7.tgz", + "integrity": "sha512-FNdu7r67fqMUSVuQpFQGE6BPdhJIhitoxhGzDbAXNcA07uoVG37fOiMk3OSV8rEICuyG6t8LGkd9EE64qIEoIA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", + "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "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/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.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.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-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "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-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-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.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-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-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz", + "integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/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==", + "dev": true + }, + "node_modules/@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", + "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", + "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", + "dev": true, + "dependencies": { + "@jest/console": "^29.3.1", + "@jest/reporters": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.2.0", + "jest-config": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-resolve-dependencies": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "jest-watcher": "^29.3.1", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", + "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-mock": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", + "dev": true, + "dependencies": { + "expect": "^29.3.1", + "jest-snapshot": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", + "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.2.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", + "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", + "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/types": "^29.3.1", + "jest-mock": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", + "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.2.0.tgz", + "integrity": "sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", + "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", + "dev": true, + "dependencies": { + "@jest/console": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", + "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.3.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", + "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.0.0", + "@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/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "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/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, "node_modules/@mozilla/readability": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@mozilla/readability/-/readability-0.3.0.tgz", @@ -17,6 +998,30 @@ "node": ">=10.0.0" } }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -25,6 +1030,113 @@ "node": ">= 6" } }, + "node_modules/@types/babel__core": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "18.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz", + "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz", + "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -113,6 +1225,67 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "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==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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/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/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -123,6 +1296,103 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, + "node_modules/babel-jest": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", + "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.3.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.2.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz", + "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@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-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz", + "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.2.0", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.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==", + "dev": true + }, "node_modules/body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -146,11 +1416,76 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "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==", + "dev": true, + "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/browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "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==", + "dev": true + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -171,6 +1506,128 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001441", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz", + "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "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/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -182,6 +1639,12 @@ "node": ">= 0.8" } }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -201,6 +1664,12 @@ "node": ">= 0.6" } }, + "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", @@ -214,6 +1683,20 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "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/cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -261,11 +1744,26 @@ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, "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==" }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -291,6 +1789,24 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", + "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", @@ -320,6 +1836,30 @@ "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.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "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==", + "dev": true + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -328,11 +1868,38 @@ "node": ">= 0.8" } }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "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": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/escodegen": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", @@ -390,6 +1957,54 @@ "node": ">= 0.6" } }, + "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/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -442,11 +2057,38 @@ "express": "^4 || ^5" } }, + "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==" }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.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", @@ -464,6 +2106,19 @@ "node": ">= 0.8" } }, + "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/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -493,11 +2148,35 @@ "node": ">= 0.6" } }, + "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==", + "dev": true + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "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-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/get-intrinsic": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", @@ -511,6 +2190,62 @@ "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==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "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/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "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/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/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -522,6 +2257,15 @@ "node": ">= 0.4.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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -549,6 +2293,12 @@ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -631,6 +2381,15 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "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/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -642,6 +2401,44 @@ "node": ">=0.10.0" } }, + "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==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "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==", + "dev": true, + "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", @@ -655,11 +2452,773 @@ "node": ">= 0.10" } }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" }, + "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/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-source-maps/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==", + "dev": true + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", + "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", + "dev": true, + "dependencies": { + "@jest/core": "^29.3.1", + "@jest/types": "^29.3.1", + "import-local": "^3.0.2", + "jest-cli": "^29.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz", + "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", + "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "p-limit": "^3.1.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", + "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", + "dev": true, + "dependencies": { + "@jest/core": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", + "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.3.1", + "@jest/types": "^29.3.1", + "babel-jest": "^29.3.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.3.1", + "jest-environment-node": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", + "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.2.0.tgz", + "integrity": "sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", + "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "jest-util": "^29.3.1", + "pretty-format": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", + "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", + "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", + "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", + "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.3.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", + "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-util": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", + "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.2.0", + "jest-snapshot": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", + "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.3.1", + "@jest/environment": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.2.0", + "jest-environment-node": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-leak-detector": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-resolve": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-util": "^29.3.1", + "jest-watcher": "^29.3.1", + "jest-worker": "^29.3.1", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", + "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/globals": "^29.3.1", + "@jest/source-map": "^29.2.0", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", + "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.3.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-haste-map": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "natural-compare": "^1.4.0", + "pretty-format": "^29.3.1", + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "@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-validate": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "leven": "^3.1.0", + "pretty-format": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/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/jest-watcher": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", + "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.3.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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/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/jsdom": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", @@ -705,11 +3264,59 @@ } } }, + "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-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/json5": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz", + "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/justify-text": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/justify-text/-/justify-text-1.1.3.tgz", "integrity": "sha512-iOZ295bkDRnbEx9a+g7zzTZQtBYS0KlsDYpVmCOc66af6ngaoJ4mXdo6ILbyW1HQYHEoIXh1wxJpoKCzzPMXSw==" }, + "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/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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -722,11 +3329,62 @@ "node": ">= 0.8.0" } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "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/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "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/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==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -740,6 +3398,12 @@ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, + "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==", + "dev": true + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -748,6 +3412,19 @@ "node": ">= 0.6" } }, + "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/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -778,11 +3455,38 @@ "node": ">= 0.6" } }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "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/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -791,6 +3495,39 @@ "node": ">= 0.6" } }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true + }, + "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/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/nwsapi": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", @@ -815,6 +3552,30 @@ "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -831,6 +3592,75 @@ "node": ">= 0.8.0" } }, + "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": "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/p-locate/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/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/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -844,11 +3674,83 @@ "node": ">= 0.8" } }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true + }, "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==" }, + "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/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "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/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -857,6 +3759,45 @@ "node": ">= 0.8.0" } }, + "node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.0.0", + "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/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -932,11 +3873,73 @@ "node": ">= 0.8" } }, + "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/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "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==" }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -972,6 +3975,15 @@ "node": ">=10" } }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -1019,6 +4031,27 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "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/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -1032,15 +4065,64 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "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==", - "optional": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "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/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -1049,11 +4131,145 @@ "node": ">= 0.8" } }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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-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==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "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-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/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -1106,6 +4322,27 @@ "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.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "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", @@ -1134,6 +4371,32 @@ "node": ">= 0.8" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", @@ -1165,6 +4428,26 @@ "node": ">= 0.4.0" } }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/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/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -1193,6 +4476,15 @@ "node": ">=10" } }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, "node_modules/webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", @@ -1227,6 +4519,21 @@ "node": ">=10" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -1235,6 +4542,42 @@ "node": ">=0.10.0" } }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", @@ -1264,6 +4607,60 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "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" + } } } } diff --git a/node_modules/@7c/validurl/README.md b/node_modules/@7c/validurl/README.md old mode 100644 new mode 100755 diff --git a/node_modules/@7c/validurl/package.json b/node_modules/@7c/validurl/package.json old mode 100644 new mode 100755 diff --git a/node_modules/@7c/validurl/tests/validURL.js b/node_modules/@7c/validurl/tests/validURL.js old mode 100644 new mode 100755 diff --git a/node_modules/@7c/validurl/validURL.js b/node_modules/@7c/validurl/validURL.js old mode 100644 new mode 100755 diff --git a/node_modules/@ampproject/remapping/LICENSE b/node_modules/@ampproject/remapping/LICENSE new file mode 100755 index 0000000..f367dfb --- /dev/null +++ b/node_modules/@ampproject/remapping/LICENSE @@ -0,0 +1,202 @@ + + 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 2019 Google LLC + + 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/node_modules/@ampproject/remapping/README.md b/node_modules/@ampproject/remapping/README.md new file mode 100755 index 0000000..1463c9f --- /dev/null +++ b/node_modules/@ampproject/remapping/README.md @@ -0,0 +1,218 @@ +# @ampproject/remapping + +> Remap sequential sourcemaps through transformations to point at the original source code + +Remapping allows you to take the sourcemaps generated through transforming your code and "remap" +them to the original source locations. Think "my minified code, transformed with babel and bundled +with webpack", all pointing to the correct location in your original source code. + +With remapping, none of your source code transformations need to be aware of the input's sourcemap, +they only need to generate an output sourcemap. This greatly simplifies building custom +transformations (think a find-and-replace). + +## Installation + +```sh +npm install @ampproject/remapping +``` + +## Usage + +```typescript +function remapping( + map: SourceMap | SourceMap[], + loader: (file: string, ctx: LoaderContext) => (SourceMap | null | undefined), + options?: { excludeContent: boolean, decodedMappings: boolean } +): SourceMap; + +// LoaderContext gives the loader the importing sourcemap, tree depth, the ability to override the +// "source" location (where child sources are resolved relative to, or the location of original +// source), and the ability to override the "content" of an original source for inclusion in the +// output sourcemap. +type LoaderContext = { + readonly importer: string; + readonly depth: number; + source: string; + content: string | null | undefined; +} +``` + +`remapping` takes the final output sourcemap, and a `loader` function. For every source file pointer +in the sourcemap, the `loader` will be called with the resolved path. If the path itself represents +a transformed file (it has a sourcmap associated with it), then the `loader` should return that +sourcemap. If not, the path will be treated as an original, untransformed source code. + +```js +// Babel transformed "helloworld.js" into "transformed.js" +const transformedMap = JSON.stringify({ + file: 'transformed.js', + // 1st column of 2nd line of output file translates into the 1st source + // file, line 3, column 2 + mappings: ';CAEE', + sources: ['helloworld.js'], + version: 3, +}); + +// Uglify minified "transformed.js" into "transformed.min.js" +const minifiedTransformedMap = JSON.stringify({ + file: 'transformed.min.js', + // 0th column of 1st line of output file translates into the 1st source + // file, line 2, column 1. + mappings: 'AACC', + names: [], + sources: ['transformed.js'], + version: 3, +}); + +const remapped = remapping( + minifiedTransformedMap, + (file, ctx) => { + + // The "transformed.js" file is an transformed file. + if (file === 'transformed.js') { + // The root importer is empty. + console.assert(ctx.importer === ''); + // The depth in the sourcemap tree we're currently loading. + // The root `minifiedTransformedMap` is depth 0, and its source children are depth 1, etc. + console.assert(ctx.depth === 1); + + return transformedMap; + } + + // Loader will be called to load transformedMap's source file pointers as well. + console.assert(file === 'helloworld.js'); + // `transformed.js`'s sourcemap points into `helloworld.js`. + console.assert(ctx.importer === 'transformed.js'); + // This is a source child of `transformed`, which is a source child of `minifiedTransformedMap`. + console.assert(ctx.depth === 2); + return null; + } +); + +console.log(remapped); +// { +// file: 'transpiled.min.js', +// mappings: 'AAEE', +// sources: ['helloworld.js'], +// version: 3, +// }; +``` + +In this example, `loader` will be called twice: + +1. `"transformed.js"`, the first source file pointer in the `minifiedTransformedMap`. We return the + associated sourcemap for it (its a transformed file, after all) so that sourcemap locations can + be traced through it into the source files it represents. +2. `"helloworld.js"`, our original, unmodified source code. This file does not have a sourcemap, so + we return `null`. + +The `remapped` sourcemap now points from `transformed.min.js` into locations in `helloworld.js`. If +you were to read the `mappings`, it says "0th column of the first line output line points to the 1st +column of the 2nd line of the file `helloworld.js`". + +### Multiple transformations of a file + +As a convenience, if you have multiple single-source transformations of a file, you may pass an +array of sourcemap files in the order of most-recent transformation sourcemap first. Note that this +changes the `importer` and `depth` of each call to our loader. So our above example could have been +written as: + +```js +const remapped = remapping( + [minifiedTransformedMap, transformedMap], + () => null +); + +console.log(remapped); +// { +// file: 'transpiled.min.js', +// mappings: 'AAEE', +// sources: ['helloworld.js'], +// version: 3, +// }; +``` + +### Advanced control of the loading graph + +#### `source` + +The `source` property can overridden to any value to change the location of the current load. Eg, +for an original source file, it allows us to change the location to the original source regardless +of what the sourcemap source entry says. And for transformed files, it allows us to change the +relative resolving location for child sources of the loaded sourcemap. + +```js +const remapped = remapping( + minifiedTransformedMap, + (file, ctx) => { + + if (file === 'transformed.js') { + // We pretend the transformed.js file actually exists in the 'src/' directory. When the nested + // source files are loaded, they will now be relative to `src/`. + ctx.source = 'src/transformed.js'; + return transformedMap; + } + + console.assert(file === 'src/helloworld.js'); + // We could futher change the source of this original file, eg, to be inside a nested directory + // itself. This will be reflected in the remapped sourcemap. + ctx.source = 'src/nested/transformed.js'; + return null; + } +); + +console.log(remapped); +// { +// …, +// sources: ['src/nested/helloworld.js'], +// }; +``` + + +#### `content` + +The `content` property can be overridden when we encounter an original source file. Eg, this allows +you to manually provide the source content of the original file regardless of whether the +`sourcesContent` field is present in the parent sourcemap. It can also be set to `null` to remove +the source content. + +```js +const remapped = remapping( + minifiedTransformedMap, + (file, ctx) => { + + if (file === 'transformed.js') { + // transformedMap does not include a `sourcesContent` field, so usually the remapped sourcemap + // would not include any `sourcesContent` values. + return transformedMap; + } + + console.assert(file === 'helloworld.js'); + // We can read the file to provide the source content. + ctx.content = fs.readFileSync(file, 'utf8'); + return null; + } +); + +console.log(remapped); +// { +// …, +// sourcesContent: [ +// 'console.log("Hello world!")', +// ], +// }; +``` + +### Options + +#### excludeContent + +By default, `excludeContent` is `false`. Passing `{ excludeContent: true }` will exclude the +`sourcesContent` field from the returned sourcemap. This is mainly useful when you want to reduce +the size out the sourcemap. + +#### decodedMappings + +By default, `decodedMappings` is `false`. Passing `{ decodedMappings: true }` will leave the +`mappings` field in a [decoded state](https://github.com/rich-harris/sourcemap-codec) instead of +encoding into a VLQ string. diff --git a/node_modules/@ampproject/remapping/dist/remapping.mjs b/node_modules/@ampproject/remapping/dist/remapping.mjs new file mode 100755 index 0000000..c6e66b7 --- /dev/null +++ b/node_modules/@ampproject/remapping/dist/remapping.mjs @@ -0,0 +1,204 @@ +import { decodedMappings, traceSegment, TraceMap } from '@jridgewell/trace-mapping'; +import { GenMapping, addSegment, setSourceContent, decodedMap, encodedMap } from '@jridgewell/gen-mapping'; + +const SOURCELESS_MAPPING = { + source: null, + column: null, + line: null, + name: null, + content: null, +}; +const EMPTY_SOURCES = []; +function Source(map, sources, source, content) { + return { + map, + sources, + source, + content, + }; +} +/** + * MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes + * (which may themselves be SourceMapTrees). + */ +function MapSource(map, sources) { + return Source(map, sources, '', null); +} +/** + * A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive + * segment tracing ends at the `OriginalSource`. + */ +function OriginalSource(source, content) { + return Source(null, EMPTY_SOURCES, source, content); +} +/** + * traceMappings is only called on the root level SourceMapTree, and begins the process of + * resolving each mapping in terms of the original source files. + */ +function traceMappings(tree) { + const gen = new GenMapping({ file: tree.map.file }); + const { sources: rootSources, map } = tree; + const rootNames = map.names; + const rootMappings = decodedMappings(map); + for (let i = 0; i < rootMappings.length; i++) { + const segments = rootMappings[i]; + let lastSource = null; + let lastSourceLine = null; + let lastSourceColumn = null; + for (let j = 0; j < segments.length; j++) { + const segment = segments[j]; + const genCol = segment[0]; + let traced = SOURCELESS_MAPPING; + // 1-length segments only move the current generated column, there's no source information + // to gather from it. + if (segment.length !== 1) { + const source = rootSources[segment[1]]; + traced = originalPositionFor(source, segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : ''); + // If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a + // respective segment into an original source. + if (traced == null) + continue; + } + // So we traced a segment down into its original source file. Now push a + // new segment pointing to this location. + const { column, line, name, content, source } = traced; + if (line === lastSourceLine && column === lastSourceColumn && source === lastSource) { + continue; + } + lastSourceLine = line; + lastSourceColumn = column; + lastSource = source; + // Sigh, TypeScript can't figure out source/line/column are either all null, or all non-null... + addSegment(gen, i, genCol, source, line, column, name); + if (content != null) + setSourceContent(gen, source, content); + } + } + return gen; +} +/** + * originalPositionFor is only called on children SourceMapTrees. It recurses down into its own + * child SourceMapTrees, until we find the original source map. + */ +function originalPositionFor(source, line, column, name) { + if (!source.map) { + return { column, line, name, source: source.source, content: source.content }; + } + const segment = traceSegment(source.map, line, column); + // If we couldn't find a segment, then this doesn't exist in the sourcemap. + if (segment == null) + return null; + // 1-length segments only move the current generated column, there's no source information + // to gather from it. + if (segment.length === 1) + return SOURCELESS_MAPPING; + return originalPositionFor(source.sources[segment[1]], segment[2], segment[3], segment.length === 5 ? source.map.names[segment[4]] : name); +} + +function asArray(value) { + if (Array.isArray(value)) + return value; + return [value]; +} +/** + * Recursively builds a tree structure out of sourcemap files, with each node + * being either an `OriginalSource` "leaf" or a `SourceMapTree` composed of + * `OriginalSource`s and `SourceMapTree`s. + * + * Every sourcemap is composed of a collection of source files and mappings + * into locations of those source files. When we generate a `SourceMapTree` for + * the sourcemap, we attempt to load each source file's own sourcemap. If it + * does not have an associated sourcemap, it is considered an original, + * unmodified source file. + */ +function buildSourceMapTree(input, loader) { + const maps = asArray(input).map((m) => new TraceMap(m, '')); + const map = maps.pop(); + for (let i = 0; i < maps.length; i++) { + if (maps[i].sources.length > 1) { + throw new Error(`Transformation map ${i} must have exactly one source file.\n` + + 'Did you specify these with the most recent transformation maps first?'); + } + } + let tree = build(map, loader, '', 0); + for (let i = maps.length - 1; i >= 0; i--) { + tree = MapSource(maps[i], [tree]); + } + return tree; +} +function build(map, loader, importer, importerDepth) { + const { resolvedSources, sourcesContent } = map; + const depth = importerDepth + 1; + const children = resolvedSources.map((sourceFile, i) => { + // The loading context gives the loader more information about why this file is being loaded + // (eg, from which importer). It also allows the loader to override the location of the loaded + // sourcemap/original source, or to override the content in the sourcesContent field if it's + // an unmodified source file. + const ctx = { + importer, + depth, + source: sourceFile || '', + content: undefined, + }; + // Use the provided loader callback to retrieve the file's sourcemap. + // TODO: We should eventually support async loading of sourcemap files. + const sourceMap = loader(ctx.source, ctx); + const { source, content } = ctx; + // If there is a sourcemap, then we need to recurse into it to load its source files. + if (sourceMap) + return build(new TraceMap(sourceMap, source), loader, source, depth); + // Else, it's an an unmodified source file. + // The contents of this unmodified source file can be overridden via the loader context, + // allowing it to be explicitly null or a string. If it remains undefined, we fall back to + // the importing sourcemap's `sourcesContent` field. + const sourceContent = content !== undefined ? content : sourcesContent ? sourcesContent[i] : null; + return OriginalSource(source, sourceContent); + }); + return MapSource(map, children); +} + +/** + * A SourceMap v3 compatible sourcemap, which only includes fields that were + * provided to it. + */ +class SourceMap { + constructor(map, options) { + const out = options.decodedMappings ? decodedMap(map) : encodedMap(map); + this.version = out.version; // SourceMap spec says this should be first. + this.file = out.file; + this.mappings = out.mappings; + this.names = out.names; + this.sourceRoot = out.sourceRoot; + this.sources = out.sources; + if (!options.excludeContent) { + this.sourcesContent = out.sourcesContent; + } + } + toString() { + return JSON.stringify(this); + } +} + +/** + * Traces through all the mappings in the root sourcemap, through the sources + * (and their sourcemaps), all the way back to the original source location. + * + * `loader` will be called every time we encounter a source file. If it returns + * a sourcemap, we will recurse into that sourcemap to continue the trace. If + * it returns a falsey value, that source file is treated as an original, + * unmodified source file. + * + * Pass `excludeContent` to exclude any self-containing source file content + * from the output sourcemap. + * + * Pass `decodedMappings` to receive a SourceMap with decoded (instead of + * VLQ encoded) mappings. + */ +function remapping(input, loader, options) { + const opts = typeof options === 'object' ? options : { excludeContent: !!options, decodedMappings: false }; + const tree = buildSourceMapTree(input, loader); + return new SourceMap(traceMappings(tree), opts); +} + +export { remapping as default }; +//# sourceMappingURL=remapping.mjs.map diff --git a/node_modules/@ampproject/remapping/dist/remapping.mjs.map b/node_modules/@ampproject/remapping/dist/remapping.mjs.map new file mode 100755 index 0000000..54066bb --- /dev/null +++ b/node_modules/@ampproject/remapping/dist/remapping.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"remapping.mjs","sources":["../../src/source-map-tree.ts","../../src/build-source-map-tree.ts","../../src/source-map.ts","../../src/remapping.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@ampproject/remapping/dist/remapping.umd.js b/node_modules/@ampproject/remapping/dist/remapping.umd.js new file mode 100755 index 0000000..593c61d --- /dev/null +++ b/node_modules/@ampproject/remapping/dist/remapping.umd.js @@ -0,0 +1,209 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@jridgewell/trace-mapping'), require('@jridgewell/gen-mapping')) : + typeof define === 'function' && define.amd ? define(['@jridgewell/trace-mapping', '@jridgewell/gen-mapping'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.remapping = factory(global.traceMapping, global.genMapping)); +})(this, (function (traceMapping, genMapping) { 'use strict'; + + const SOURCELESS_MAPPING = { + source: null, + column: null, + line: null, + name: null, + content: null, + }; + const EMPTY_SOURCES = []; + function Source(map, sources, source, content) { + return { + map, + sources, + source, + content, + }; + } + /** + * MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes + * (which may themselves be SourceMapTrees). + */ + function MapSource(map, sources) { + return Source(map, sources, '', null); + } + /** + * A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive + * segment tracing ends at the `OriginalSource`. + */ + function OriginalSource(source, content) { + return Source(null, EMPTY_SOURCES, source, content); + } + /** + * traceMappings is only called on the root level SourceMapTree, and begins the process of + * resolving each mapping in terms of the original source files. + */ + function traceMappings(tree) { + const gen = new genMapping.GenMapping({ file: tree.map.file }); + const { sources: rootSources, map } = tree; + const rootNames = map.names; + const rootMappings = traceMapping.decodedMappings(map); + for (let i = 0; i < rootMappings.length; i++) { + const segments = rootMappings[i]; + let lastSource = null; + let lastSourceLine = null; + let lastSourceColumn = null; + for (let j = 0; j < segments.length; j++) { + const segment = segments[j]; + const genCol = segment[0]; + let traced = SOURCELESS_MAPPING; + // 1-length segments only move the current generated column, there's no source information + // to gather from it. + if (segment.length !== 1) { + const source = rootSources[segment[1]]; + traced = originalPositionFor(source, segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : ''); + // If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a + // respective segment into an original source. + if (traced == null) + continue; + } + // So we traced a segment down into its original source file. Now push a + // new segment pointing to this location. + const { column, line, name, content, source } = traced; + if (line === lastSourceLine && column === lastSourceColumn && source === lastSource) { + continue; + } + lastSourceLine = line; + lastSourceColumn = column; + lastSource = source; + // Sigh, TypeScript can't figure out source/line/column are either all null, or all non-null... + genMapping.addSegment(gen, i, genCol, source, line, column, name); + if (content != null) + genMapping.setSourceContent(gen, source, content); + } + } + return gen; + } + /** + * originalPositionFor is only called on children SourceMapTrees. It recurses down into its own + * child SourceMapTrees, until we find the original source map. + */ + function originalPositionFor(source, line, column, name) { + if (!source.map) { + return { column, line, name, source: source.source, content: source.content }; + } + const segment = traceMapping.traceSegment(source.map, line, column); + // If we couldn't find a segment, then this doesn't exist in the sourcemap. + if (segment == null) + return null; + // 1-length segments only move the current generated column, there's no source information + // to gather from it. + if (segment.length === 1) + return SOURCELESS_MAPPING; + return originalPositionFor(source.sources[segment[1]], segment[2], segment[3], segment.length === 5 ? source.map.names[segment[4]] : name); + } + + function asArray(value) { + if (Array.isArray(value)) + return value; + return [value]; + } + /** + * Recursively builds a tree structure out of sourcemap files, with each node + * being either an `OriginalSource` "leaf" or a `SourceMapTree` composed of + * `OriginalSource`s and `SourceMapTree`s. + * + * Every sourcemap is composed of a collection of source files and mappings + * into locations of those source files. When we generate a `SourceMapTree` for + * the sourcemap, we attempt to load each source file's own sourcemap. If it + * does not have an associated sourcemap, it is considered an original, + * unmodified source file. + */ + function buildSourceMapTree(input, loader) { + const maps = asArray(input).map((m) => new traceMapping.TraceMap(m, '')); + const map = maps.pop(); + for (let i = 0; i < maps.length; i++) { + if (maps[i].sources.length > 1) { + throw new Error(`Transformation map ${i} must have exactly one source file.\n` + + 'Did you specify these with the most recent transformation maps first?'); + } + } + let tree = build(map, loader, '', 0); + for (let i = maps.length - 1; i >= 0; i--) { + tree = MapSource(maps[i], [tree]); + } + return tree; + } + function build(map, loader, importer, importerDepth) { + const { resolvedSources, sourcesContent } = map; + const depth = importerDepth + 1; + const children = resolvedSources.map((sourceFile, i) => { + // The loading context gives the loader more information about why this file is being loaded + // (eg, from which importer). It also allows the loader to override the location of the loaded + // sourcemap/original source, or to override the content in the sourcesContent field if it's + // an unmodified source file. + const ctx = { + importer, + depth, + source: sourceFile || '', + content: undefined, + }; + // Use the provided loader callback to retrieve the file's sourcemap. + // TODO: We should eventually support async loading of sourcemap files. + const sourceMap = loader(ctx.source, ctx); + const { source, content } = ctx; + // If there is a sourcemap, then we need to recurse into it to load its source files. + if (sourceMap) + return build(new traceMapping.TraceMap(sourceMap, source), loader, source, depth); + // Else, it's an an unmodified source file. + // The contents of this unmodified source file can be overridden via the loader context, + // allowing it to be explicitly null or a string. If it remains undefined, we fall back to + // the importing sourcemap's `sourcesContent` field. + const sourceContent = content !== undefined ? content : sourcesContent ? sourcesContent[i] : null; + return OriginalSource(source, sourceContent); + }); + return MapSource(map, children); + } + + /** + * A SourceMap v3 compatible sourcemap, which only includes fields that were + * provided to it. + */ + class SourceMap { + constructor(map, options) { + const out = options.decodedMappings ? genMapping.decodedMap(map) : genMapping.encodedMap(map); + this.version = out.version; // SourceMap spec says this should be first. + this.file = out.file; + this.mappings = out.mappings; + this.names = out.names; + this.sourceRoot = out.sourceRoot; + this.sources = out.sources; + if (!options.excludeContent) { + this.sourcesContent = out.sourcesContent; + } + } + toString() { + return JSON.stringify(this); + } + } + + /** + * Traces through all the mappings in the root sourcemap, through the sources + * (and their sourcemaps), all the way back to the original source location. + * + * `loader` will be called every time we encounter a source file. If it returns + * a sourcemap, we will recurse into that sourcemap to continue the trace. If + * it returns a falsey value, that source file is treated as an original, + * unmodified source file. + * + * Pass `excludeContent` to exclude any self-containing source file content + * from the output sourcemap. + * + * Pass `decodedMappings` to receive a SourceMap with decoded (instead of + * VLQ encoded) mappings. + */ + function remapping(input, loader, options) { + const opts = typeof options === 'object' ? options : { excludeContent: !!options, decodedMappings: false }; + const tree = buildSourceMapTree(input, loader); + return new SourceMap(traceMappings(tree), opts); + } + + return remapping; + +})); +//# sourceMappingURL=remapping.umd.js.map diff --git a/node_modules/@ampproject/remapping/dist/remapping.umd.js.map b/node_modules/@ampproject/remapping/dist/remapping.umd.js.map new file mode 100755 index 0000000..726f2bc --- /dev/null +++ b/node_modules/@ampproject/remapping/dist/remapping.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"remapping.umd.js","sources":["../../src/source-map-tree.ts","../../src/build-source-map-tree.ts","../../src/source-map.ts","../../src/remapping.ts"],"sourcesContent":[null,null,null,null],"names":["GenMapping","decodedMappings","addSegment","setSourceContent","traceSegment","TraceMap","decodedMap","encodedMap"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@ampproject/remapping/dist/types/build-source-map-tree.d.ts b/node_modules/@ampproject/remapping/dist/types/build-source-map-tree.d.ts new file mode 100755 index 0000000..f87fcea --- /dev/null +++ b/node_modules/@ampproject/remapping/dist/types/build-source-map-tree.d.ts @@ -0,0 +1,14 @@ +import type { MapSource as MapSourceType } from './source-map-tree'; +import type { SourceMapInput, SourceMapLoader } from './types'; +/** + * Recursively builds a tree structure out of sourcemap files, with each node + * being either an `OriginalSource` "leaf" or a `SourceMapTree` composed of + * `OriginalSource`s and `SourceMapTree`s. + * + * Every sourcemap is composed of a collection of source files and mappings + * into locations of those source files. When we generate a `SourceMapTree` for + * the sourcemap, we attempt to load each source file's own sourcemap. If it + * does not have an associated sourcemap, it is considered an original, + * unmodified source file. + */ +export default function buildSourceMapTree(input: SourceMapInput | SourceMapInput[], loader: SourceMapLoader): MapSourceType; diff --git a/node_modules/@ampproject/remapping/dist/types/remapping.d.ts b/node_modules/@ampproject/remapping/dist/types/remapping.d.ts new file mode 100755 index 0000000..0b58ea9 --- /dev/null +++ b/node_modules/@ampproject/remapping/dist/types/remapping.d.ts @@ -0,0 +1,19 @@ +import SourceMap from './source-map'; +import type { SourceMapInput, SourceMapLoader, Options } from './types'; +export type { SourceMapSegment, EncodedSourceMap, EncodedSourceMap as RawSourceMap, DecodedSourceMap, SourceMapInput, SourceMapLoader, LoaderContext, Options, } from './types'; +/** + * Traces through all the mappings in the root sourcemap, through the sources + * (and their sourcemaps), all the way back to the original source location. + * + * `loader` will be called every time we encounter a source file. If it returns + * a sourcemap, we will recurse into that sourcemap to continue the trace. If + * it returns a falsey value, that source file is treated as an original, + * unmodified source file. + * + * Pass `excludeContent` to exclude any self-containing source file content + * from the output sourcemap. + * + * Pass `decodedMappings` to receive a SourceMap with decoded (instead of + * VLQ encoded) mappings. + */ +export default function remapping(input: SourceMapInput | SourceMapInput[], loader: SourceMapLoader, options?: boolean | Options): SourceMap; diff --git a/node_modules/@ampproject/remapping/dist/types/source-map-tree.d.ts b/node_modules/@ampproject/remapping/dist/types/source-map-tree.d.ts new file mode 100755 index 0000000..3b6b1bf --- /dev/null +++ b/node_modules/@ampproject/remapping/dist/types/source-map-tree.d.ts @@ -0,0 +1,48 @@ +import { GenMapping } from '@jridgewell/gen-mapping'; +import type { TraceMap } from '@jridgewell/trace-mapping'; +export declare type SourceMapSegmentObject = { + column: number; + line: number; + name: string; + source: string; + content: string | null; +} | { + column: null; + line: null; + name: null; + source: null; + content: null; +}; +export declare type OriginalSource = { + map: TraceMap; + sources: Sources[]; + source: string; + content: string | null; +}; +export declare type MapSource = { + map: TraceMap; + sources: Sources[]; + source: string; + content: string | null; +}; +export declare type Sources = OriginalSource | MapSource; +/** + * MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes + * (which may themselves be SourceMapTrees). + */ +export declare function MapSource(map: TraceMap, sources: Sources[]): MapSource; +/** + * A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive + * segment tracing ends at the `OriginalSource`. + */ +export declare function OriginalSource(source: string, content: string | null): OriginalSource; +/** + * traceMappings is only called on the root level SourceMapTree, and begins the process of + * resolving each mapping in terms of the original source files. + */ +export declare function traceMappings(tree: MapSource): GenMapping; +/** + * originalPositionFor is only called on children SourceMapTrees. It recurses down into its own + * child SourceMapTrees, until we find the original source map. + */ +export declare function originalPositionFor(source: Sources, line: number, column: number, name: string): SourceMapSegmentObject | null; diff --git a/node_modules/@ampproject/remapping/dist/types/source-map.d.ts b/node_modules/@ampproject/remapping/dist/types/source-map.d.ts new file mode 100755 index 0000000..ef999b7 --- /dev/null +++ b/node_modules/@ampproject/remapping/dist/types/source-map.d.ts @@ -0,0 +1,17 @@ +import type { GenMapping } from '@jridgewell/gen-mapping'; +import type { DecodedSourceMap, EncodedSourceMap, Options } from './types'; +/** + * A SourceMap v3 compatible sourcemap, which only includes fields that were + * provided to it. + */ +export default class SourceMap { + file?: string | null; + mappings: EncodedSourceMap['mappings'] | DecodedSourceMap['mappings']; + sourceRoot?: string; + names: string[]; + sources: (string | null)[]; + sourcesContent?: (string | null)[]; + version: 3; + constructor(map: GenMapping, options: Options); + toString(): string; +} diff --git a/node_modules/@ampproject/remapping/dist/types/types.d.ts b/node_modules/@ampproject/remapping/dist/types/types.d.ts new file mode 100755 index 0000000..730a963 --- /dev/null +++ b/node_modules/@ampproject/remapping/dist/types/types.d.ts @@ -0,0 +1,14 @@ +import type { SourceMapInput } from '@jridgewell/trace-mapping'; +export type { SourceMapSegment, DecodedSourceMap, EncodedSourceMap, } from '@jridgewell/trace-mapping'; +export type { SourceMapInput }; +export declare type LoaderContext = { + readonly importer: string; + readonly depth: number; + source: string; + content: string | null | undefined; +}; +export declare type SourceMapLoader = (file: string, ctx: LoaderContext) => SourceMapInput | null | undefined | void; +export declare type Options = { + excludeContent?: boolean; + decodedMappings?: boolean; +}; diff --git a/node_modules/@ampproject/remapping/package.json b/node_modules/@ampproject/remapping/package.json new file mode 100755 index 0000000..bf97a85 --- /dev/null +++ b/node_modules/@ampproject/remapping/package.json @@ -0,0 +1,63 @@ +{ + "name": "@ampproject/remapping", + "version": "2.2.0", + "description": "Remap sequential sourcemaps through transformations to point at the original source code", + "keywords": [ + "source", + "map", + "remap" + ], + "main": "dist/remapping.umd.js", + "module": "dist/remapping.mjs", + "typings": "dist/types/remapping.d.ts", + "files": [ + "dist" + ], + "author": "Justin Ridgewell ", + "repository": { + "type": "git", + "url": "git+https://github.com/ampproject/remapping.git" + }, + "license": "Apache-2.0", + "engines": { + "node": ">=6.0.0" + }, + "scripts": { + "build": "run-s -n build:*", + "build:rollup": "rollup -c rollup.config.js", + "build:ts": "tsc --project tsconfig.build.json", + "lint": "run-s -n lint:*", + "lint:prettier": "npm run test:lint:prettier -- --write", + "lint:ts": "npm run test:lint:ts -- --fix", + "prebuild": "rm -rf dist", + "prepublishOnly": "npm run preversion", + "preversion": "run-s test build", + "test": "run-s -n test:lint test:only", + "test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand", + "test:lint": "run-s -n test:lint:*", + "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'", + "test:lint:ts": "eslint '{src,test}/**/*.ts'", + "test:only": "jest --coverage", + "test:watch": "jest --coverage --watch" + }, + "devDependencies": { + "@rollup/plugin-typescript": "8.3.2", + "@types/jest": "27.4.1", + "@typescript-eslint/eslint-plugin": "5.20.0", + "@typescript-eslint/parser": "5.20.0", + "eslint": "8.14.0", + "eslint-config-prettier": "8.5.0", + "jest": "27.5.1", + "jest-config": "27.5.1", + "npm-run-all": "4.1.5", + "prettier": "2.6.2", + "rollup": "2.70.2", + "ts-jest": "27.1.4", + "tslib": "2.4.0", + "typescript": "4.6.3" + }, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } +} diff --git a/node_modules/@babel/code-frame/LICENSE b/node_modules/@babel/code-frame/LICENSE new file mode 100755 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/code-frame/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie 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/node_modules/@babel/code-frame/README.md b/node_modules/@babel/code-frame/README.md new file mode 100755 index 0000000..08cacb0 --- /dev/null +++ b/node_modules/@babel/code-frame/README.md @@ -0,0 +1,19 @@ +# @babel/code-frame + +> Generate errors that contain a code frame that point to source locations. + +See our website [@babel/code-frame](https://babeljs.io/docs/en/babel-code-frame) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/code-frame +``` + +or using yarn: + +```sh +yarn add @babel/code-frame --dev +``` diff --git a/node_modules/@babel/code-frame/lib/index.js b/node_modules/@babel/code-frame/lib/index.js new file mode 100755 index 0000000..cba3f83 --- /dev/null +++ b/node_modules/@babel/code-frame/lib/index.js @@ -0,0 +1,163 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.codeFrameColumns = codeFrameColumns; +exports.default = _default; + +var _highlight = require("@babel/highlight"); + +let deprecationWarningShown = false; + +function getDefs(chalk) { + return { + gutter: chalk.grey, + marker: chalk.red.bold, + message: chalk.red.bold + }; +} + +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; + +function getMarkerLines(loc, source, opts) { + const startLoc = Object.assign({ + column: 0, + line: -1 + }, loc.start); + const endLoc = Object.assign({}, startLoc, loc.end); + const { + linesAbove = 2, + linesBelow = 3 + } = opts || {}; + const startLine = startLoc.line; + const startColumn = startLoc.column; + const endLine = endLoc.line; + const endColumn = endLoc.column; + let start = Math.max(startLine - (linesAbove + 1), 0); + let end = Math.min(source.length, endLine + linesBelow); + + if (startLine === -1) { + start = 0; + } + + if (endLine === -1) { + end = source.length; + } + + const lineDiff = endLine - startLine; + const markerLines = {}; + + if (lineDiff) { + for (let i = 0; i <= lineDiff; i++) { + const lineNumber = i + startLine; + + if (!startColumn) { + markerLines[lineNumber] = true; + } else if (i === 0) { + const sourceLength = source[lineNumber - 1].length; + markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; + } else if (i === lineDiff) { + markerLines[lineNumber] = [0, endColumn]; + } else { + const sourceLength = source[lineNumber - i].length; + markerLines[lineNumber] = [0, sourceLength]; + } + } + } else { + if (startColumn === endColumn) { + if (startColumn) { + markerLines[startLine] = [startColumn, 0]; + } else { + markerLines[startLine] = true; + } + } else { + markerLines[startLine] = [startColumn, endColumn - startColumn]; + } + } + + return { + start, + end, + markerLines + }; +} + +function codeFrameColumns(rawLines, loc, opts = {}) { + const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); + const chalk = (0, _highlight.getChalk)(opts); + const defs = getDefs(chalk); + + const maybeHighlight = (chalkFn, string) => { + return highlighted ? chalkFn(string) : string; + }; + + const lines = rawLines.split(NEWLINE); + const { + start, + end, + markerLines + } = getMarkerLines(loc, lines, opts); + const hasColumns = loc.start && typeof loc.start.column === "number"; + const numberMaxWidth = String(end).length; + const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; + let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { + const number = start + 1 + index; + const paddedNumber = ` ${number}`.slice(-numberMaxWidth); + const gutter = ` ${paddedNumber} |`; + const hasMarker = markerLines[number]; + const lastMarkerLine = !markerLines[number + 1]; + + if (hasMarker) { + let markerLine = ""; + + if (Array.isArray(hasMarker)) { + const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); + const numberOfMarkers = hasMarker[1] || 1; + markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); + + if (lastMarkerLine && opts.message) { + markerLine += " " + maybeHighlight(defs.message, opts.message); + } + } + + return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); + } else { + return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`; + } + }).join("\n"); + + if (opts.message && !hasColumns) { + frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; + } + + if (highlighted) { + return chalk.reset(frame); + } else { + return frame; + } +} + +function _default(rawLines, lineNumber, colNumber, opts = {}) { + if (!deprecationWarningShown) { + deprecationWarningShown = true; + const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; + + if (process.emitWarning) { + process.emitWarning(message, "DeprecationWarning"); + } else { + const deprecationError = new Error(message); + deprecationError.name = "DeprecationWarning"; + console.warn(new Error(message)); + } + } + + colNumber = Math.max(colNumber, 0); + const location = { + start: { + column: colNumber, + line: lineNumber + } + }; + return codeFrameColumns(rawLines, location, opts); +} \ No newline at end of file diff --git a/node_modules/@babel/code-frame/package.json b/node_modules/@babel/code-frame/package.json new file mode 100755 index 0000000..18d8db1 --- /dev/null +++ b/node_modules/@babel/code-frame/package.json @@ -0,0 +1,30 @@ +{ + "name": "@babel/code-frame", + "version": "7.18.6", + "description": "Generate errors that contain a code frame that point to source locations.", + "author": "The Babel Team (https://babel.dev/team)", + "homepage": "https://babel.dev/docs/en/next/babel-code-frame", + "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-code-frame" + }, + "main": "./lib/index.js", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "devDependencies": { + "@types/chalk": "^2.0.0", + "chalk": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/node_modules/@babel/compat-data/LICENSE b/node_modules/@babel/compat-data/LICENSE new file mode 100755 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/compat-data/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie 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/node_modules/@babel/compat-data/README.md b/node_modules/@babel/compat-data/README.md new file mode 100755 index 0000000..9f3abde --- /dev/null +++ b/node_modules/@babel/compat-data/README.md @@ -0,0 +1,19 @@ +# @babel/compat-data + +> + +See our website [@babel/compat-data](https://babeljs.io/docs/en/babel-compat-data) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/compat-data +``` + +or using yarn: + +```sh +yarn add @babel/compat-data +``` diff --git a/node_modules/@babel/compat-data/corejs2-built-ins.js b/node_modules/@babel/compat-data/corejs2-built-ins.js new file mode 100755 index 0000000..68ce97f --- /dev/null +++ b/node_modules/@babel/compat-data/corejs2-built-ins.js @@ -0,0 +1 @@ +module.exports = require("./data/corejs2-built-ins.json"); diff --git a/node_modules/@babel/compat-data/corejs3-shipped-proposals.js b/node_modules/@babel/compat-data/corejs3-shipped-proposals.js new file mode 100755 index 0000000..6a85b4d --- /dev/null +++ b/node_modules/@babel/compat-data/corejs3-shipped-proposals.js @@ -0,0 +1 @@ +module.exports = require("./data/corejs3-shipped-proposals.json"); diff --git a/node_modules/@babel/compat-data/data/corejs2-built-ins.json b/node_modules/@babel/compat-data/data/corejs2-built-ins.json new file mode 100755 index 0000000..bf3be88 --- /dev/null +++ b/node_modules/@babel/compat-data/data/corejs2-built-ins.json @@ -0,0 +1,1935 @@ +{ + "es6.array.copy-within": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "32", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.7.13", + "electron": "0.31" + }, + "es6.array.every": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.array.fill": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "31", + "safari": "7.1", + "node": "4", + "deno": "1", + "ios": "8", + "samsung": "5", + "rhino": "1.7.13", + "electron": "0.31" + }, + "es6.array.filter": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.array.find": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "4", + "deno": "1", + "ios": "8", + "samsung": "5", + "rhino": "1.7.13", + "electron": "0.31" + }, + "es6.array.find-index": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "4", + "deno": "1", + "ios": "8", + "samsung": "5", + "rhino": "1.7.13", + "electron": "0.31" + }, + "es7.array.flat-map": { + "chrome": "69", + "opera": "56", + "edge": "79", + "firefox": "62", + "safari": "12", + "node": "11", + "deno": "1", + "ios": "12", + "samsung": "10", + "electron": "4.0" + }, + "es6.array.for-each": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.array.from": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "36", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es7.array.includes": { + "chrome": "47", + "opera": "34", + "edge": "14", + "firefox": "102", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.36" + }, + "es6.array.index-of": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.array.is-array": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "4", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.array.iterator": { + "chrome": "66", + "opera": "53", + "edge": "12", + "firefox": "60", + "safari": "9", + "node": "10", + "deno": "1", + "ios": "9", + "samsung": "9", + "rhino": "1.7.13", + "electron": "3.0" + }, + "es6.array.last-index-of": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.array.map": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.array.of": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.7.13", + "electron": "0.31" + }, + "es6.array.reduce": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "3", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.array.reduce-right": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "3", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.array.slice": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.array.some": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.array.sort": { + "chrome": "63", + "opera": "50", + "edge": "12", + "firefox": "5", + "safari": "12", + "node": "10", + "deno": "1", + "ie": "9", + "ios": "12", + "samsung": "8", + "rhino": "1.7.13", + "electron": "3.0" + }, + "es6.array.species": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.date.now": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "2", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.date.to-iso-string": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "3.5", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.date.to-json": { + "chrome": "5", + "opera": "12.10", + "edge": "12", + "firefox": "4", + "safari": "10", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "10", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.date.to-primitive": { + "chrome": "47", + "opera": "34", + "edge": "15", + "firefox": "44", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.36" + }, + "es6.date.to-string": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "10", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.function.bind": { + "chrome": "7", + "opera": "12", + "edge": "12", + "firefox": "4", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.function.has-instance": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "50", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.function.name": { + "chrome": "5", + "opera": "10.50", + "edge": "14", + "firefox": "2", + "safari": "4", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.map": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.math.acosh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.asinh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.atanh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.cbrt": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.clz32": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "31", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.cosh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.expm1": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.fround": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "26", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.hypot": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "27", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.imul": { + "chrome": "30", + "opera": "17", + "edge": "12", + "firefox": "23", + "safari": "7", + "node": "0.12", + "deno": "1", + "android": "4.4", + "ios": "7", + "samsung": "2", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.log1p": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.log10": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.log2": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.sign": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.sinh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.tanh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.math.trunc": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.number.constructor": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "36", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "electron": "0.21" + }, + "es6.number.epsilon": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.number.is-finite": { + "chrome": "19", + "opera": "15", + "edge": "12", + "firefox": "16", + "safari": "9", + "node": "0.8", + "deno": "1", + "android": "4.1", + "ios": "9", + "samsung": "1.5", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.number.is-integer": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "16", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.number.is-nan": { + "chrome": "19", + "opera": "15", + "edge": "12", + "firefox": "15", + "safari": "9", + "node": "0.8", + "deno": "1", + "android": "4.1", + "ios": "9", + "samsung": "1.5", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.number.is-safe-integer": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "32", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.number.max-safe-integer": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "31", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.number.min-safe-integer": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "31", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.number.parse-float": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.number.parse-int": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.object.assign": { + "chrome": "49", + "opera": "36", + "edge": "13", + "firefox": "36", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.object.create": { + "chrome": "5", + "opera": "12", + "edge": "12", + "firefox": "4", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es7.object.define-getter": { + "chrome": "62", + "opera": "49", + "edge": "16", + "firefox": "48", + "safari": "9", + "node": "8.10", + "deno": "1", + "ios": "9", + "samsung": "8", + "electron": "3.0" + }, + "es7.object.define-setter": { + "chrome": "62", + "opera": "49", + "edge": "16", + "firefox": "48", + "safari": "9", + "node": "8.10", + "deno": "1", + "ios": "9", + "samsung": "8", + "electron": "3.0" + }, + "es6.object.define-property": { + "chrome": "5", + "opera": "12", + "edge": "12", + "firefox": "4", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.object.define-properties": { + "chrome": "5", + "opera": "12", + "edge": "12", + "firefox": "4", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es7.object.entries": { + "chrome": "54", + "opera": "41", + "edge": "14", + "firefox": "47", + "safari": "10.1", + "node": "7", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "rhino": "1.7.14", + "electron": "1.4" + }, + "es6.object.freeze": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "electron": "0.30" + }, + "es6.object.get-own-property-descriptor": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "electron": "0.30" + }, + "es7.object.get-own-property-descriptors": { + "chrome": "54", + "opera": "41", + "edge": "15", + "firefox": "50", + "safari": "10.1", + "node": "7", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "electron": "1.4" + }, + "es6.object.get-own-property-names": { + "chrome": "40", + "opera": "27", + "edge": "12", + "firefox": "33", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "electron": "0.21" + }, + "es6.object.get-prototype-of": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "electron": "0.30" + }, + "es7.object.lookup-getter": { + "chrome": "62", + "opera": "49", + "edge": "79", + "firefox": "36", + "safari": "9", + "node": "8.10", + "deno": "1", + "ios": "9", + "samsung": "8", + "electron": "3.0" + }, + "es7.object.lookup-setter": { + "chrome": "62", + "opera": "49", + "edge": "79", + "firefox": "36", + "safari": "9", + "node": "8.10", + "deno": "1", + "ios": "9", + "samsung": "8", + "electron": "3.0" + }, + "es6.object.prevent-extensions": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "electron": "0.30" + }, + "es6.object.to-string": { + "chrome": "57", + "opera": "44", + "edge": "15", + "firefox": "51", + "safari": "10", + "node": "8", + "deno": "1", + "ios": "10", + "samsung": "7", + "electron": "1.7" + }, + "es6.object.is": { + "chrome": "19", + "opera": "15", + "edge": "12", + "firefox": "22", + "safari": "9", + "node": "0.8", + "deno": "1", + "android": "4.1", + "ios": "9", + "samsung": "1.5", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.object.is-frozen": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "electron": "0.30" + }, + "es6.object.is-sealed": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "electron": "0.30" + }, + "es6.object.is-extensible": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "electron": "0.30" + }, + "es6.object.keys": { + "chrome": "40", + "opera": "27", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "electron": "0.21" + }, + "es6.object.seal": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "electron": "0.30" + }, + "es6.object.set-prototype-of": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "31", + "safari": "9", + "node": "0.12", + "deno": "1", + "ie": "11", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es7.object.values": { + "chrome": "54", + "opera": "41", + "edge": "14", + "firefox": "47", + "safari": "10.1", + "node": "7", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "rhino": "1.7.14", + "electron": "1.4" + }, + "es6.promise": { + "chrome": "51", + "opera": "38", + "edge": "14", + "firefox": "45", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es7.promise.finally": { + "chrome": "63", + "opera": "50", + "edge": "18", + "firefox": "58", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "8", + "electron": "3.0" + }, + "es6.reflect.apply": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.reflect.construct": { + "chrome": "49", + "opera": "36", + "edge": "13", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.reflect.define-property": { + "chrome": "49", + "opera": "36", + "edge": "13", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.reflect.delete-property": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.reflect.get": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.reflect.get-own-property-descriptor": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.reflect.get-prototype-of": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.reflect.has": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.reflect.is-extensible": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.reflect.own-keys": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.reflect.prevent-extensions": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.reflect.set": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.reflect.set-prototype-of": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "es6.regexp.constructor": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "40", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.1" + }, + "es6.regexp.flags": { + "chrome": "49", + "opera": "36", + "edge": "79", + "firefox": "37", + "safari": "9", + "node": "6", + "deno": "1", + "ios": "9", + "samsung": "5", + "electron": "0.37" + }, + "es6.regexp.match": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.13", + "electron": "1.1" + }, + "es6.regexp.replace": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.1" + }, + "es6.regexp.split": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.1" + }, + "es6.regexp.search": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.13", + "electron": "1.1" + }, + "es6.regexp.to-string": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "39", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.1" + }, + "es6.set": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.symbol": { + "chrome": "51", + "opera": "38", + "edge": "79", + "firefox": "51", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es7.symbol.async-iterator": { + "chrome": "63", + "opera": "50", + "edge": "79", + "firefox": "57", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "8", + "electron": "3.0" + }, + "es6.string.anchor": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.string.big": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.string.blink": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.string.bold": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.string.code-point-at": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "29", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "electron": "0.21" + }, + "es6.string.ends-with": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "29", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "electron": "0.21" + }, + "es6.string.fixed": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.string.fontcolor": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.string.fontsize": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.string.from-code-point": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "29", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "electron": "0.21" + }, + "es6.string.includes": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "40", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "electron": "0.21" + }, + "es6.string.italics": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.string.iterator": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "36", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.string.link": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es7.string.pad-start": { + "chrome": "57", + "opera": "44", + "edge": "15", + "firefox": "48", + "safari": "10", + "node": "8", + "deno": "1", + "ios": "10", + "samsung": "7", + "rhino": "1.7.13", + "electron": "1.7" + }, + "es7.string.pad-end": { + "chrome": "57", + "opera": "44", + "edge": "15", + "firefox": "48", + "safari": "10", + "node": "8", + "deno": "1", + "ios": "10", + "samsung": "7", + "rhino": "1.7.13", + "electron": "1.7" + }, + "es6.string.raw": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "34", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.14", + "electron": "0.21" + }, + "es6.string.repeat": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "24", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "electron": "0.21" + }, + "es6.string.small": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.string.starts-with": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "29", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "electron": "0.21" + }, + "es6.string.strike": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.string.sub": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.string.sup": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "electron": "0.20" + }, + "es6.string.trim": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "3.5", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es7.string.trim-left": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "61", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "9", + "rhino": "1.7.13", + "electron": "3.0" + }, + "es7.string.trim-right": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "61", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "9", + "rhino": "1.7.13", + "electron": "3.0" + }, + "es6.typed.array-buffer": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.typed.data-view": { + "chrome": "5", + "opera": "12", + "edge": "12", + "firefox": "15", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "10", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "es6.typed.int8-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.typed.uint8-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.typed.uint8-clamped-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.typed.int16-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.typed.uint16-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.typed.int32-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.typed.uint32-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.typed.float32-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.typed.float64-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "es6.weak-map": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "9", + "node": "6.5", + "deno": "1", + "ios": "9", + "samsung": "5", + "electron": "1.2" + }, + "es6.weak-set": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "9", + "node": "6.5", + "deno": "1", + "ios": "9", + "samsung": "5", + "electron": "1.2" + } +} diff --git a/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json b/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json new file mode 100755 index 0000000..7ce01ed --- /dev/null +++ b/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json @@ -0,0 +1,5 @@ +[ + "esnext.global-this", + "esnext.promise.all-settled", + "esnext.string.match-all" +] diff --git a/node_modules/@babel/compat-data/data/native-modules.json b/node_modules/@babel/compat-data/data/native-modules.json new file mode 100755 index 0000000..bf63499 --- /dev/null +++ b/node_modules/@babel/compat-data/data/native-modules.json @@ -0,0 +1,18 @@ +{ + "es6.module": { + "chrome": "61", + "and_chr": "61", + "edge": "16", + "firefox": "60", + "and_ff": "60", + "node": "13.2.0", + "opera": "48", + "op_mob": "48", + "safari": "10.1", + "ios": "10.3", + "samsung": "8.2", + "android": "61", + "electron": "2.0", + "ios_saf": "10.3" + } +} diff --git a/node_modules/@babel/compat-data/data/overlapping-plugins.json b/node_modules/@babel/compat-data/data/overlapping-plugins.json new file mode 100755 index 0000000..94fda05 --- /dev/null +++ b/node_modules/@babel/compat-data/data/overlapping-plugins.json @@ -0,0 +1,25 @@ +{ + "transform-async-to-generator": [ + "bugfix/transform-async-arrows-in-class" + ], + "transform-parameters": [ + "bugfix/transform-edge-default-parameters", + "bugfix/transform-safari-id-destructuring-collision-in-function-expression" + ], + "transform-function-name": [ + "bugfix/transform-edge-function-name" + ], + "transform-block-scoping": [ + "bugfix/transform-safari-block-shadowing", + "bugfix/transform-safari-for-shadowing" + ], + "transform-template-literals": [ + "bugfix/transform-tagged-template-caching" + ], + "transform-optional-chaining": [ + "bugfix/transform-v8-spread-parameters-in-optional-chaining" + ], + "proposal-optional-chaining": [ + "bugfix/transform-v8-spread-parameters-in-optional-chaining" + ] +} diff --git a/node_modules/@babel/compat-data/data/plugin-bugfixes.json b/node_modules/@babel/compat-data/data/plugin-bugfixes.json new file mode 100755 index 0000000..57ab95d --- /dev/null +++ b/node_modules/@babel/compat-data/data/plugin-bugfixes.json @@ -0,0 +1,184 @@ +{ + "bugfix/transform-async-arrows-in-class": { + "chrome": "55", + "opera": "42", + "edge": "15", + "firefox": "52", + "safari": "11", + "node": "7.6", + "deno": "1", + "ios": "11", + "samsung": "6", + "electron": "1.6" + }, + "bugfix/transform-edge-default-parameters": { + "chrome": "49", + "opera": "36", + "edge": "18", + "firefox": "52", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "bugfix/transform-edge-function-name": { + "chrome": "51", + "opera": "38", + "edge": "79", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "bugfix/transform-safari-block-shadowing": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "44", + "safari": "11", + "node": "6", + "deno": "1", + "ie": "11", + "ios": "11", + "samsung": "5", + "electron": "0.37" + }, + "bugfix/transform-safari-for-shadowing": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "4", + "safari": "11", + "node": "6", + "deno": "1", + "ie": "11", + "ios": "11", + "samsung": "5", + "rhino": "1.7.13", + "electron": "0.37" + }, + "bugfix/transform-safari-id-destructuring-collision-in-function-expression": { + "chrome": "49", + "opera": "36", + "edge": "14", + "firefox": "2", + "node": "6", + "deno": "1", + "samsung": "5", + "electron": "0.37" + }, + "bugfix/transform-tagged-template-caching": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "34", + "safari": "13", + "node": "4", + "deno": "1", + "ios": "13", + "samsung": "3.4", + "rhino": "1.7.14", + "electron": "0.21" + }, + "bugfix/transform-v8-spread-parameters-in-optional-chaining": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "74", + "safari": "13.1", + "node": "16.9", + "deno": "1.9", + "ios": "13.4", + "samsung": "16", + "electron": "13.0" + }, + "transform-optional-chaining": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "74", + "safari": "13.1", + "node": "14", + "deno": "1", + "ios": "13.4", + "samsung": "13", + "electron": "8.0" + }, + "proposal-optional-chaining": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "74", + "safari": "13.1", + "node": "14", + "deno": "1", + "ios": "13.4", + "samsung": "13", + "electron": "8.0" + }, + "transform-parameters": { + "chrome": "49", + "opera": "36", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "transform-async-to-generator": { + "chrome": "55", + "opera": "42", + "edge": "15", + "firefox": "52", + "safari": "10.1", + "node": "7.6", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "electron": "1.6" + }, + "transform-template-literals": { + "chrome": "41", + "opera": "28", + "edge": "13", + "firefox": "34", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "electron": "0.21" + }, + "transform-function-name": { + "chrome": "51", + "opera": "38", + "edge": "14", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "transform-block-scoping": { + "chrome": "49", + "opera": "36", + "edge": "14", + "firefox": "51", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + } +} diff --git a/node_modules/@babel/compat-data/data/plugins.json b/node_modules/@babel/compat-data/data/plugins.json new file mode 100755 index 0000000..6d69c79 --- /dev/null +++ b/node_modules/@babel/compat-data/data/plugins.json @@ -0,0 +1,691 @@ +{ + "transform-class-static-block": { + "chrome": "94", + "opera": "80", + "edge": "94", + "firefox": "93", + "node": "16.11", + "deno": "1.14", + "samsung": "17", + "electron": "15.0" + }, + "proposal-class-static-block": { + "chrome": "94", + "opera": "80", + "edge": "94", + "firefox": "93", + "node": "16.11", + "deno": "1.14", + "samsung": "17", + "electron": "15.0" + }, + "transform-private-property-in-object": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "90", + "safari": "15", + "node": "16.9", + "deno": "1.9", + "ios": "15", + "samsung": "16", + "electron": "13.0" + }, + "proposal-private-property-in-object": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "90", + "safari": "15", + "node": "16.9", + "deno": "1.9", + "ios": "15", + "samsung": "16", + "electron": "13.0" + }, + "transform-class-properties": { + "chrome": "74", + "opera": "62", + "edge": "79", + "firefox": "90", + "safari": "14.1", + "node": "12", + "deno": "1", + "ios": "15", + "samsung": "11", + "electron": "6.0" + }, + "proposal-class-properties": { + "chrome": "74", + "opera": "62", + "edge": "79", + "firefox": "90", + "safari": "14.1", + "node": "12", + "deno": "1", + "ios": "15", + "samsung": "11", + "electron": "6.0" + }, + "transform-private-methods": { + "chrome": "84", + "opera": "70", + "edge": "84", + "firefox": "90", + "safari": "15", + "node": "14.6", + "deno": "1", + "ios": "15", + "samsung": "14", + "electron": "10.0" + }, + "proposal-private-methods": { + "chrome": "84", + "opera": "70", + "edge": "84", + "firefox": "90", + "safari": "15", + "node": "14.6", + "deno": "1", + "ios": "15", + "samsung": "14", + "electron": "10.0" + }, + "transform-numeric-separator": { + "chrome": "75", + "opera": "62", + "edge": "79", + "firefox": "70", + "safari": "13", + "node": "12.5", + "deno": "1", + "ios": "13", + "samsung": "11", + "rhino": "1.7.14", + "electron": "6.0" + }, + "proposal-numeric-separator": { + "chrome": "75", + "opera": "62", + "edge": "79", + "firefox": "70", + "safari": "13", + "node": "12.5", + "deno": "1", + "ios": "13", + "samsung": "11", + "rhino": "1.7.14", + "electron": "6.0" + }, + "transform-logical-assignment-operators": { + "chrome": "85", + "opera": "71", + "edge": "85", + "firefox": "79", + "safari": "14", + "node": "15", + "deno": "1.2", + "ios": "14", + "samsung": "14", + "electron": "10.0" + }, + "proposal-logical-assignment-operators": { + "chrome": "85", + "opera": "71", + "edge": "85", + "firefox": "79", + "safari": "14", + "node": "15", + "deno": "1.2", + "ios": "14", + "samsung": "14", + "electron": "10.0" + }, + "transform-nullish-coalescing-operator": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "72", + "safari": "13.1", + "node": "14", + "deno": "1", + "ios": "13.4", + "samsung": "13", + "electron": "8.0" + }, + "proposal-nullish-coalescing-operator": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "72", + "safari": "13.1", + "node": "14", + "deno": "1", + "ios": "13.4", + "samsung": "13", + "electron": "8.0" + }, + "transform-optional-chaining": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "74", + "safari": "13.1", + "node": "16.9", + "deno": "1.9", + "ios": "13.4", + "samsung": "16", + "electron": "13.0" + }, + "proposal-optional-chaining": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "74", + "safari": "13.1", + "node": "16.9", + "deno": "1.9", + "ios": "13.4", + "samsung": "16", + "electron": "13.0" + }, + "transform-json-strings": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "62", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "9", + "rhino": "1.7.14", + "electron": "3.0" + }, + "proposal-json-strings": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "62", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "9", + "rhino": "1.7.14", + "electron": "3.0" + }, + "transform-optional-catch-binding": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "58", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "electron": "3.0" + }, + "proposal-optional-catch-binding": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "58", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "electron": "3.0" + }, + "transform-parameters": { + "chrome": "49", + "opera": "36", + "edge": "18", + "firefox": "53", + "node": "6", + "deno": "1", + "samsung": "5", + "electron": "0.37" + }, + "transform-async-generator-functions": { + "chrome": "63", + "opera": "50", + "edge": "79", + "firefox": "57", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "8", + "electron": "3.0" + }, + "proposal-async-generator-functions": { + "chrome": "63", + "opera": "50", + "edge": "79", + "firefox": "57", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "8", + "electron": "3.0" + }, + "transform-object-rest-spread": { + "chrome": "60", + "opera": "47", + "edge": "79", + "firefox": "55", + "safari": "11.1", + "node": "8.3", + "deno": "1", + "ios": "11.3", + "samsung": "8", + "electron": "2.0" + }, + "proposal-object-rest-spread": { + "chrome": "60", + "opera": "47", + "edge": "79", + "firefox": "55", + "safari": "11.1", + "node": "8.3", + "deno": "1", + "ios": "11.3", + "samsung": "8", + "electron": "2.0" + }, + "transform-dotall-regex": { + "chrome": "62", + "opera": "49", + "edge": "79", + "firefox": "78", + "safari": "11.1", + "node": "8.10", + "deno": "1", + "ios": "11.3", + "samsung": "8", + "electron": "3.0" + }, + "transform-unicode-property-regex": { + "chrome": "64", + "opera": "51", + "edge": "79", + "firefox": "78", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "electron": "3.0" + }, + "proposal-unicode-property-regex": { + "chrome": "64", + "opera": "51", + "edge": "79", + "firefox": "78", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "electron": "3.0" + }, + "transform-named-capturing-groups-regex": { + "chrome": "64", + "opera": "51", + "edge": "79", + "firefox": "78", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "electron": "3.0" + }, + "transform-async-to-generator": { + "chrome": "55", + "opera": "42", + "edge": "15", + "firefox": "52", + "safari": "11", + "node": "7.6", + "deno": "1", + "ios": "11", + "samsung": "6", + "electron": "1.6" + }, + "transform-exponentiation-operator": { + "chrome": "52", + "opera": "39", + "edge": "14", + "firefox": "52", + "safari": "10.1", + "node": "7", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "rhino": "1.7.14", + "electron": "1.3" + }, + "transform-template-literals": { + "chrome": "41", + "opera": "28", + "edge": "13", + "firefox": "34", + "safari": "13", + "node": "4", + "deno": "1", + "ios": "13", + "samsung": "3.4", + "electron": "0.21" + }, + "transform-literals": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "53", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "electron": "0.30" + }, + "transform-function-name": { + "chrome": "51", + "opera": "38", + "edge": "79", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "transform-arrow-functions": { + "chrome": "47", + "opera": "34", + "edge": "13", + "firefox": "43", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.13", + "electron": "0.36" + }, + "transform-block-scoped-functions": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "46", + "safari": "10", + "node": "4", + "deno": "1", + "ie": "11", + "ios": "10", + "samsung": "3.4", + "electron": "0.21" + }, + "transform-classes": { + "chrome": "46", + "opera": "33", + "edge": "13", + "firefox": "45", + "safari": "10", + "node": "5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.36" + }, + "transform-object-super": { + "chrome": "46", + "opera": "33", + "edge": "13", + "firefox": "45", + "safari": "10", + "node": "5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.36" + }, + "transform-shorthand-properties": { + "chrome": "43", + "opera": "30", + "edge": "12", + "firefox": "33", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.14", + "electron": "0.27" + }, + "transform-duplicate-keys": { + "chrome": "42", + "opera": "29", + "edge": "12", + "firefox": "34", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "electron": "0.25" + }, + "transform-computed-properties": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "34", + "safari": "7.1", + "node": "4", + "deno": "1", + "ios": "8", + "samsung": "4", + "electron": "0.30" + }, + "transform-for-of": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "transform-sticky-regex": { + "chrome": "49", + "opera": "36", + "edge": "13", + "firefox": "3", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.37" + }, + "transform-unicode-escapes": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "53", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "electron": "0.30" + }, + "transform-unicode-regex": { + "chrome": "50", + "opera": "37", + "edge": "13", + "firefox": "46", + "safari": "12", + "node": "6", + "deno": "1", + "ios": "12", + "samsung": "5", + "electron": "1.1" + }, + "transform-spread": { + "chrome": "46", + "opera": "33", + "edge": "13", + "firefox": "45", + "safari": "10", + "node": "5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.36" + }, + "transform-destructuring": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.2" + }, + "transform-block-scoping": { + "chrome": "49", + "opera": "36", + "edge": "14", + "firefox": "51", + "safari": "11", + "node": "6", + "deno": "1", + "ios": "11", + "samsung": "5", + "electron": "0.37" + }, + "transform-typeof-symbol": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "36", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "3", + "rhino": "1.7.13", + "electron": "0.20" + }, + "transform-new-target": { + "chrome": "46", + "opera": "33", + "edge": "14", + "firefox": "41", + "safari": "10", + "node": "5", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "0.36" + }, + "transform-regenerator": { + "chrome": "50", + "opera": "37", + "edge": "13", + "firefox": "53", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "electron": "1.1" + }, + "transform-member-expression-literals": { + "chrome": "7", + "opera": "12", + "edge": "12", + "firefox": "2", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "transform-property-literals": { + "chrome": "7", + "opera": "12", + "edge": "12", + "firefox": "2", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "transform-reserved-words": { + "chrome": "13", + "opera": "10.50", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.6", + "deno": "1", + "ie": "9", + "android": "4.4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "electron": "0.20" + }, + "transform-export-namespace-from": { + "chrome": "72", + "and_chr": "72", + "edge": "79", + "firefox": "80", + "and_ff": "80", + "node": "13.2", + "opera": "60", + "op_mob": "51", + "samsung": "11.0", + "android": "72", + "electron": "5.0" + }, + "proposal-export-namespace-from": { + "chrome": "72", + "and_chr": "72", + "edge": "79", + "firefox": "80", + "and_ff": "80", + "node": "13.2", + "opera": "60", + "op_mob": "51", + "samsung": "11.0", + "android": "72", + "electron": "5.0" + } +} diff --git a/node_modules/@babel/compat-data/native-modules.js b/node_modules/@babel/compat-data/native-modules.js new file mode 100755 index 0000000..8e97da4 --- /dev/null +++ b/node_modules/@babel/compat-data/native-modules.js @@ -0,0 +1 @@ +module.exports = require("./data/native-modules.json"); diff --git a/node_modules/@babel/compat-data/overlapping-plugins.js b/node_modules/@babel/compat-data/overlapping-plugins.js new file mode 100755 index 0000000..88242e4 --- /dev/null +++ b/node_modules/@babel/compat-data/overlapping-plugins.js @@ -0,0 +1 @@ +module.exports = require("./data/overlapping-plugins.json"); diff --git a/node_modules/@babel/compat-data/package.json b/node_modules/@babel/compat-data/package.json new file mode 100755 index 0000000..418f195 --- /dev/null +++ b/node_modules/@babel/compat-data/package.json @@ -0,0 +1,40 @@ +{ + "name": "@babel/compat-data", + "version": "7.20.10", + "author": "The Babel Team (https://babel.dev/team)", + "license": "MIT", + "description": "", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-compat-data" + }, + "publishConfig": { + "access": "public" + }, + "exports": { + "./plugins": "./plugins.js", + "./native-modules": "./native-modules.js", + "./corejs2-built-ins": "./corejs2-built-ins.js", + "./corejs3-shipped-proposals": "./corejs3-shipped-proposals.js", + "./overlapping-plugins": "./overlapping-plugins.js", + "./plugin-bugfixes": "./plugin-bugfixes.js" + }, + "scripts": { + "build-data": "./scripts/download-compat-table.sh && node ./scripts/build-data.js && node ./scripts/build-modules-support.js && node ./scripts/build-bugfixes-targets.js" + }, + "keywords": [ + "babel", + "compat-table", + "compat-data" + ], + "devDependencies": { + "@mdn/browser-compat-data": "^4.0.10", + "core-js-compat": "^3.25.1", + "electron-to-chromium": "^1.4.248" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/node_modules/@babel/compat-data/plugin-bugfixes.js b/node_modules/@babel/compat-data/plugin-bugfixes.js new file mode 100755 index 0000000..f390181 --- /dev/null +++ b/node_modules/@babel/compat-data/plugin-bugfixes.js @@ -0,0 +1 @@ +module.exports = require("./data/plugin-bugfixes.json"); diff --git a/node_modules/@babel/compat-data/plugins.js b/node_modules/@babel/compat-data/plugins.js new file mode 100755 index 0000000..42646ed --- /dev/null +++ b/node_modules/@babel/compat-data/plugins.js @@ -0,0 +1 @@ +module.exports = require("./data/plugins.json"); diff --git a/node_modules/@babel/core/LICENSE b/node_modules/@babel/core/LICENSE new file mode 100755 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/core/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie 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/node_modules/@babel/core/README.md b/node_modules/@babel/core/README.md new file mode 100755 index 0000000..9b3a950 --- /dev/null +++ b/node_modules/@babel/core/README.md @@ -0,0 +1,19 @@ +# @babel/core + +> Babel compiler core. + +See our website [@babel/core](https://babeljs.io/docs/en/babel-core) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen) associated with this package. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/core +``` + +or using yarn: + +```sh +yarn add @babel/core --dev +``` diff --git a/node_modules/@babel/core/cjs-proxy.cjs b/node_modules/@babel/core/cjs-proxy.cjs new file mode 100755 index 0000000..4bf8b5c --- /dev/null +++ b/node_modules/@babel/core/cjs-proxy.cjs @@ -0,0 +1,29 @@ +"use strict"; + +const babelP = import("./lib/index.js"); + +const functionNames = [ + "createConfigItem", + "loadPartialConfig", + "loadOptions", + "transform", + "transformFile", + "transformFromAst", + "parse", +]; + +for (const name of functionNames) { + exports[`${name}Sync`] = function () { + throw new Error( + `"${name}Sync" is not supported when loading @babel/core using require()` + ); + }; + exports[name] = function (...args) { + babelP.then(babel => { + babel[name](...args); + }); + }; + exports[`${name}Async`] = function (...args) { + return babelP.then(babel => babel[`${name}Async`](...args)); + }; +} diff --git a/node_modules/@babel/core/lib/config/cache-contexts.js b/node_modules/@babel/core/lib/config/cache-contexts.js new file mode 100755 index 0000000..d7c0912 --- /dev/null +++ b/node_modules/@babel/core/lib/config/cache-contexts.js @@ -0,0 +1,3 @@ +0 && 0; + +//# sourceMappingURL=cache-contexts.js.map diff --git a/node_modules/@babel/core/lib/config/cache-contexts.js.map b/node_modules/@babel/core/lib/config/cache-contexts.js.map new file mode 100755 index 0000000..37fb689 --- /dev/null +++ b/node_modules/@babel/core/lib/config/cache-contexts.js.map @@ -0,0 +1 @@ +{"version":3,"names":[],"sources":["../../src/config/cache-contexts.ts"],"sourcesContent":["import type { Targets } from \"@babel/helper-compilation-targets\";\n\nimport type { ConfigContext } from \"./config-chain\";\nimport type { CallerMetadata } from \"./validation/options\";\n\nexport type { ConfigContext as FullConfig };\n\nexport type FullPreset = {\n targets: Targets;\n} & ConfigContext;\nexport type FullPlugin = {\n assumptions: { [name: string]: boolean };\n} & FullPreset;\n\n// Context not including filename since it is used in places that cannot\n// process 'ignore'/'only' and other filename-based logic.\nexport type SimpleConfig = {\n envName: string;\n caller: CallerMetadata | undefined;\n};\nexport type SimplePreset = {\n targets: Targets;\n} & SimpleConfig;\nexport type SimplePlugin = {\n assumptions: {\n [name: string]: boolean;\n };\n} & SimplePreset;\n"],"mappings":""} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/caching.js b/node_modules/@babel/core/lib/config/caching.js new file mode 100755 index 0000000..6362db3 --- /dev/null +++ b/node_modules/@babel/core/lib/config/caching.js @@ -0,0 +1,264 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.assertSimpleType = assertSimpleType; +exports.makeStrongCache = makeStrongCache; +exports.makeStrongCacheSync = makeStrongCacheSync; +exports.makeWeakCache = makeWeakCache; +exports.makeWeakCacheSync = makeWeakCacheSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _async = require("../gensync-utils/async"); +var _util = require("./util"); +const synchronize = gen => { + return _gensync()(gen).sync; +}; + +function* genTrue() { + return true; +} +function makeWeakCache(handler) { + return makeCachedFunction(WeakMap, handler); +} +function makeWeakCacheSync(handler) { + return synchronize(makeWeakCache(handler)); +} +function makeStrongCache(handler) { + return makeCachedFunction(Map, handler); +} +function makeStrongCacheSync(handler) { + return synchronize(makeStrongCache(handler)); +} + +function makeCachedFunction(CallCache, handler) { + const callCacheSync = new CallCache(); + const callCacheAsync = new CallCache(); + const futureCache = new CallCache(); + return function* cachedFunction(arg, data) { + const asyncContext = yield* (0, _async.isAsync)(); + const callCache = asyncContext ? callCacheAsync : callCacheSync; + const cached = yield* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data); + if (cached.valid) return cached.value; + const cache = new CacheConfigurator(data); + const handlerResult = handler(arg, cache); + let finishLock; + let value; + if ((0, _util.isIterableIterator)(handlerResult)) { + value = yield* (0, _async.onFirstPause)(handlerResult, () => { + finishLock = setupAsyncLocks(cache, futureCache, arg); + }); + } else { + value = handlerResult; + } + updateFunctionCache(callCache, cache, arg, value); + if (finishLock) { + futureCache.delete(arg); + finishLock.release(value); + } + return value; + }; +} +function* getCachedValue(cache, arg, data) { + const cachedValue = cache.get(arg); + if (cachedValue) { + for (const { + value, + valid + } of cachedValue) { + if (yield* valid(data)) return { + valid: true, + value + }; + } + } + return { + valid: false, + value: null + }; +} +function* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data) { + const cached = yield* getCachedValue(callCache, arg, data); + if (cached.valid) { + return cached; + } + if (asyncContext) { + const cached = yield* getCachedValue(futureCache, arg, data); + if (cached.valid) { + const value = yield* (0, _async.waitFor)(cached.value.promise); + return { + valid: true, + value + }; + } + } + return { + valid: false, + value: null + }; +} +function setupAsyncLocks(config, futureCache, arg) { + const finishLock = new Lock(); + updateFunctionCache(futureCache, config, arg, finishLock); + return finishLock; +} +function updateFunctionCache(cache, config, arg, value) { + if (!config.configured()) config.forever(); + let cachedValue = cache.get(arg); + config.deactivate(); + switch (config.mode()) { + case "forever": + cachedValue = [{ + value, + valid: genTrue + }]; + cache.set(arg, cachedValue); + break; + case "invalidate": + cachedValue = [{ + value, + valid: config.validator() + }]; + cache.set(arg, cachedValue); + break; + case "valid": + if (cachedValue) { + cachedValue.push({ + value, + valid: config.validator() + }); + } else { + cachedValue = [{ + value, + valid: config.validator() + }]; + cache.set(arg, cachedValue); + } + } +} +class CacheConfigurator { + constructor(data) { + this._active = true; + this._never = false; + this._forever = false; + this._invalidate = false; + this._configured = false; + this._pairs = []; + this._data = void 0; + this._data = data; + } + simple() { + return makeSimpleConfigurator(this); + } + mode() { + if (this._never) return "never"; + if (this._forever) return "forever"; + if (this._invalidate) return "invalidate"; + return "valid"; + } + forever() { + if (!this._active) { + throw new Error("Cannot change caching after evaluation has completed."); + } + if (this._never) { + throw new Error("Caching has already been configured with .never()"); + } + this._forever = true; + this._configured = true; + } + never() { + if (!this._active) { + throw new Error("Cannot change caching after evaluation has completed."); + } + if (this._forever) { + throw new Error("Caching has already been configured with .forever()"); + } + this._never = true; + this._configured = true; + } + using(handler) { + if (!this._active) { + throw new Error("Cannot change caching after evaluation has completed."); + } + if (this._never || this._forever) { + throw new Error("Caching has already been configured with .never or .forever()"); + } + this._configured = true; + const key = handler(this._data); + const fn = (0, _async.maybeAsync)(handler, `You appear to be using an async cache handler, but Babel has been called synchronously`); + if ((0, _async.isThenable)(key)) { + return key.then(key => { + this._pairs.push([key, fn]); + return key; + }); + } + this._pairs.push([key, fn]); + return key; + } + invalidate(handler) { + this._invalidate = true; + return this.using(handler); + } + validator() { + const pairs = this._pairs; + return function* (data) { + for (const [key, fn] of pairs) { + if (key !== (yield* fn(data))) return false; + } + return true; + }; + } + deactivate() { + this._active = false; + } + configured() { + return this._configured; + } +} +function makeSimpleConfigurator(cache) { + function cacheFn(val) { + if (typeof val === "boolean") { + if (val) cache.forever();else cache.never(); + return; + } + return cache.using(() => assertSimpleType(val())); + } + cacheFn.forever = () => cache.forever(); + cacheFn.never = () => cache.never(); + cacheFn.using = cb => cache.using(() => assertSimpleType(cb())); + cacheFn.invalidate = cb => cache.invalidate(() => assertSimpleType(cb())); + return cacheFn; +} + +function assertSimpleType(value) { + if ((0, _async.isThenable)(value)) { + throw new Error(`You appear to be using an async cache handler, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously handle your caching logic.`); + } + if (value != null && typeof value !== "string" && typeof value !== "boolean" && typeof value !== "number") { + throw new Error("Cache keys must be either string, boolean, number, null, or undefined."); + } + return value; +} +class Lock { + constructor() { + this.released = false; + this.promise = void 0; + this._resolve = void 0; + this.promise = new Promise(resolve => { + this._resolve = resolve; + }); + } + release(value) { + this.released = true; + this._resolve(value); + } +} +0 && 0; + +//# sourceMappingURL=caching.js.map diff --git a/node_modules/@babel/core/lib/config/caching.js.map b/node_modules/@babel/core/lib/config/caching.js.map new file mode 100755 index 0000000..a2ac90c --- /dev/null +++ b/node_modules/@babel/core/lib/config/caching.js.map @@ -0,0 +1 @@ +{"version":3,"names":["synchronize","gen","gensync","sync","genTrue","makeWeakCache","handler","makeCachedFunction","WeakMap","makeWeakCacheSync","makeStrongCache","Map","makeStrongCacheSync","CallCache","callCacheSync","callCacheAsync","futureCache","cachedFunction","arg","data","asyncContext","isAsync","callCache","cached","getCachedValueOrWait","valid","value","cache","CacheConfigurator","handlerResult","finishLock","isIterableIterator","onFirstPause","setupAsyncLocks","updateFunctionCache","delete","release","getCachedValue","cachedValue","get","waitFor","promise","config","Lock","configured","forever","deactivate","mode","set","validator","push","constructor","_active","_never","_forever","_invalidate","_configured","_pairs","_data","simple","makeSimpleConfigurator","Error","never","using","key","fn","maybeAsync","isThenable","then","invalidate","pairs","cacheFn","val","assertSimpleType","cb","released","_resolve","Promise","resolve"],"sources":["../../src/config/caching.ts"],"sourcesContent":["import gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport {\n maybeAsync,\n isAsync,\n onFirstPause,\n waitFor,\n isThenable,\n} from \"../gensync-utils/async\";\nimport { isIterableIterator } from \"./util\";\n\nexport type { CacheConfigurator };\n\nexport type SimpleCacheConfigurator = {\n (forever: boolean): void;\n (handler: () => T): T;\n\n forever: () => void;\n never: () => void;\n using: (handler: () => T) => T;\n invalidate: (handler: () => T) => T;\n};\n\nexport type CacheEntry = Array<{\n value: ResultT;\n valid: (channel: SideChannel) => Handler;\n}>;\n\nconst synchronize = (\n gen: (...args: ArgsT) => Handler,\n): ((...args: ArgsT) => ResultT) => {\n return gensync(gen).sync;\n};\n\n// eslint-disable-next-line require-yield\nfunction* genTrue() {\n return true;\n}\n\nexport function makeWeakCache(\n handler: (\n arg: ArgT,\n cache: CacheConfigurator,\n ) => Handler | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler {\n return makeCachedFunction(WeakMap, handler);\n}\n\nexport function makeWeakCacheSync(\n handler: (arg: ArgT, cache?: CacheConfigurator) => ResultT,\n): (arg: ArgT, data?: SideChannel) => ResultT {\n return synchronize<[ArgT, SideChannel], ResultT>(\n makeWeakCache(handler),\n );\n}\n\nexport function makeStrongCache(\n handler: (\n arg: ArgT,\n cache: CacheConfigurator,\n ) => Handler | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler {\n return makeCachedFunction(Map, handler);\n}\n\nexport function makeStrongCacheSync(\n handler: (arg: ArgT, cache?: CacheConfigurator) => ResultT,\n): (arg: ArgT, data?: SideChannel) => ResultT {\n return synchronize<[ArgT, SideChannel], ResultT>(\n makeStrongCache(handler),\n );\n}\n\n/* NOTE: Part of the logic explained in this comment is explained in the\n * getCachedValueOrWait and setupAsyncLocks functions.\n *\n * > There are only two hard things in Computer Science: cache invalidation and naming things.\n * > -- Phil Karlton\n *\n * I don't know if Phil was also thinking about handling a cache whose invalidation function is\n * defined asynchronously is considered, but it is REALLY hard to do correctly.\n *\n * The implemented logic (only when gensync is run asynchronously) is the following:\n * 1. If there is a valid cache associated to the current \"arg\" parameter,\n * a. RETURN the cached value\n * 3. If there is a FinishLock associated to the current \"arg\" parameter representing a valid cache,\n * a. Wait for that lock to be released\n * b. RETURN the value associated with that lock\n * 5. Start executing the function to be cached\n * a. If it pauses on a promise, then\n * i. Let FinishLock be a new lock\n * ii. Store FinishLock as associated to the current \"arg\" parameter\n * iii. Wait for the function to finish executing\n * iv. Release FinishLock\n * v. Send the function result to anyone waiting on FinishLock\n * 6. Store the result in the cache\n * 7. RETURN the result\n */\nfunction makeCachedFunction(\n CallCache: new () => CacheMap,\n handler: (\n arg: ArgT,\n cache: CacheConfigurator,\n ) => Handler | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler {\n const callCacheSync = new CallCache();\n const callCacheAsync = new CallCache();\n const futureCache = new CallCache>();\n\n return function* cachedFunction(arg: ArgT, data: SideChannel) {\n const asyncContext = yield* isAsync();\n const callCache = asyncContext ? callCacheAsync : callCacheSync;\n\n const cached = yield* getCachedValueOrWait(\n asyncContext,\n callCache,\n futureCache,\n arg,\n data,\n );\n if (cached.valid) return cached.value;\n\n const cache = new CacheConfigurator(data);\n\n const handlerResult: Handler | ResultT = handler(arg, cache);\n\n let finishLock: Lock;\n let value: ResultT;\n\n if (isIterableIterator(handlerResult)) {\n value = yield* onFirstPause(handlerResult, () => {\n finishLock = setupAsyncLocks(cache, futureCache, arg);\n });\n } else {\n value = handlerResult;\n }\n\n updateFunctionCache(callCache, cache, arg, value);\n\n if (finishLock) {\n futureCache.delete(arg);\n finishLock.release(value);\n }\n\n return value;\n };\n}\n\ntype CacheMap =\n | Map>\n // @ts-expect-error todo(flow->ts): add `extends object` constraint to ArgT\n | WeakMap>;\n\nfunction* getCachedValue(\n cache: CacheMap,\n arg: ArgT,\n data: SideChannel,\n): Handler<{ valid: true; value: ResultT } | { valid: false; value: null }> {\n const cachedValue: CacheEntry | void = cache.get(arg);\n\n if (cachedValue) {\n for (const { value, valid } of cachedValue) {\n if (yield* valid(data)) return { valid: true, value };\n }\n }\n\n return { valid: false, value: null };\n}\n\nfunction* getCachedValueOrWait(\n asyncContext: boolean,\n callCache: CacheMap,\n futureCache: CacheMap, SideChannel>,\n arg: ArgT,\n data: SideChannel,\n): Handler<{ valid: true; value: ResultT } | { valid: false; value: null }> {\n const cached = yield* getCachedValue(callCache, arg, data);\n if (cached.valid) {\n return cached;\n }\n\n if (asyncContext) {\n const cached = yield* getCachedValue(futureCache, arg, data);\n if (cached.valid) {\n const value = yield* waitFor(cached.value.promise);\n return { valid: true, value };\n }\n }\n\n return { valid: false, value: null };\n}\n\nfunction setupAsyncLocks(\n config: CacheConfigurator,\n futureCache: CacheMap, SideChannel>,\n arg: ArgT,\n): Lock {\n const finishLock = new Lock();\n\n updateFunctionCache(futureCache, config, arg, finishLock);\n\n return finishLock;\n}\n\nfunction updateFunctionCache<\n ArgT,\n ResultT,\n SideChannel,\n Cache extends CacheMap,\n>(\n cache: Cache,\n config: CacheConfigurator,\n arg: ArgT,\n value: ResultT,\n) {\n if (!config.configured()) config.forever();\n\n let cachedValue: CacheEntry | void = cache.get(arg);\n\n config.deactivate();\n\n switch (config.mode()) {\n case \"forever\":\n cachedValue = [{ value, valid: genTrue }];\n cache.set(arg, cachedValue);\n break;\n case \"invalidate\":\n cachedValue = [{ value, valid: config.validator() }];\n cache.set(arg, cachedValue);\n break;\n case \"valid\":\n if (cachedValue) {\n cachedValue.push({ value, valid: config.validator() });\n } else {\n cachedValue = [{ value, valid: config.validator() }];\n cache.set(arg, cachedValue);\n }\n }\n}\n\nclass CacheConfigurator {\n _active: boolean = true;\n _never: boolean = false;\n _forever: boolean = false;\n _invalidate: boolean = false;\n\n _configured: boolean = false;\n\n _pairs: Array<\n [cachedValue: unknown, handler: (data: SideChannel) => Handler]\n > = [];\n\n _data: SideChannel;\n\n constructor(data: SideChannel) {\n this._data = data;\n }\n\n simple() {\n return makeSimpleConfigurator(this);\n }\n\n mode() {\n if (this._never) return \"never\";\n if (this._forever) return \"forever\";\n if (this._invalidate) return \"invalidate\";\n return \"valid\";\n }\n\n forever() {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._never) {\n throw new Error(\"Caching has already been configured with .never()\");\n }\n this._forever = true;\n this._configured = true;\n }\n\n never() {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._forever) {\n throw new Error(\"Caching has already been configured with .forever()\");\n }\n this._never = true;\n this._configured = true;\n }\n\n using(handler: (data: SideChannel) => T): T {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._never || this._forever) {\n throw new Error(\n \"Caching has already been configured with .never or .forever()\",\n );\n }\n this._configured = true;\n\n const key = handler(this._data);\n\n const fn = maybeAsync(\n handler,\n `You appear to be using an async cache handler, but Babel has been called synchronously`,\n );\n\n if (isThenable(key)) {\n // @ts-expect-error todo(flow->ts): improve function return type annotation\n return key.then((key: unknown) => {\n this._pairs.push([key, fn]);\n return key;\n });\n }\n\n this._pairs.push([key, fn]);\n return key;\n }\n\n invalidate(handler: (data: SideChannel) => T): T {\n this._invalidate = true;\n return this.using(handler);\n }\n\n validator(): (data: SideChannel) => Handler {\n const pairs = this._pairs;\n return function* (data: SideChannel) {\n for (const [key, fn] of pairs) {\n if (key !== (yield* fn(data))) return false;\n }\n return true;\n };\n }\n\n deactivate() {\n this._active = false;\n }\n\n configured() {\n return this._configured;\n }\n}\n\nfunction makeSimpleConfigurator(\n cache: CacheConfigurator,\n): SimpleCacheConfigurator {\n function cacheFn(val: any) {\n if (typeof val === \"boolean\") {\n if (val) cache.forever();\n else cache.never();\n return;\n }\n\n return cache.using(() => assertSimpleType(val()));\n }\n cacheFn.forever = () => cache.forever();\n cacheFn.never = () => cache.never();\n cacheFn.using = (cb: { (): SimpleType }) =>\n cache.using(() => assertSimpleType(cb()));\n cacheFn.invalidate = (cb: { (): SimpleType }) =>\n cache.invalidate(() => assertSimpleType(cb()));\n\n return cacheFn as any;\n}\n\n// Types are limited here so that in the future these values can be used\n// as part of Babel's caching logic.\nexport type SimpleType =\n | string\n | boolean\n | number\n | null\n | void\n | Promise;\nexport function assertSimpleType(value: unknown): SimpleType {\n if (isThenable(value)) {\n throw new Error(\n `You appear to be using an async cache handler, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously handle your caching logic.`,\n );\n }\n\n if (\n value != null &&\n typeof value !== \"string\" &&\n typeof value !== \"boolean\" &&\n typeof value !== \"number\"\n ) {\n throw new Error(\n \"Cache keys must be either string, boolean, number, null, or undefined.\",\n );\n }\n // @ts-expect-error Type 'unknown' is not assignable to type 'SimpleType'. This can be removed\n // when strictNullCheck is enabled\n return value;\n}\n\nclass Lock {\n released: boolean = false;\n promise: Promise;\n _resolve: (value: T) => void;\n\n constructor() {\n this.promise = new Promise(resolve => {\n this._resolve = resolve;\n });\n }\n\n release(value: T) {\n this.released = true;\n this._resolve(value);\n }\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/config-chain.js b/node_modules/@babel/core/lib/config/config-chain.js new file mode 100755 index 0000000..ab3ab47 --- /dev/null +++ b/node_modules/@babel/core/lib/config/config-chain.js @@ -0,0 +1,482 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.buildPresetChain = buildPresetChain; +exports.buildPresetChainWalker = void 0; +exports.buildRootChain = buildRootChain; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +var _options = require("./validation/options"); +var _patternToRegex = require("./pattern-to-regex"); +var _printer = require("./printer"); +var _rewriteStackTrace = require("../errors/rewrite-stack-trace"); +var _configError = require("../errors/config-error"); +var _files = require("./files"); +var _caching = require("./caching"); +var _configDescriptors = require("./config-descriptors"); + +const debug = _debug()("babel:config:config-chain"); +function* buildPresetChain(arg, context) { + const chain = yield* buildPresetChainWalker(arg, context); + if (!chain) return null; + return { + plugins: dedupDescriptors(chain.plugins), + presets: dedupDescriptors(chain.presets), + options: chain.options.map(o => normalizeOptions(o)), + files: new Set() + }; +} +const buildPresetChainWalker = makeChainWalker({ + root: preset => loadPresetDescriptors(preset), + env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName), + overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index), + overridesEnv: (preset, index, envName) => loadPresetOverridesEnvDescriptors(preset)(index)(envName), + createLogger: () => () => {} +}); +exports.buildPresetChainWalker = buildPresetChainWalker; +const loadPresetDescriptors = (0, _caching.makeWeakCacheSync)(preset => buildRootDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors)); +const loadPresetEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, envName))); +const loadPresetOverridesDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index))); +const loadPresetOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index, envName)))); +function* buildRootChain(opts, context) { + let configReport, babelRcReport; + const programmaticLogger = new _printer.ConfigPrinter(); + const programmaticChain = yield* loadProgrammaticChain({ + options: opts, + dirname: context.cwd + }, context, undefined, programmaticLogger); + if (!programmaticChain) return null; + const programmaticReport = yield* programmaticLogger.output(); + let configFile; + if (typeof opts.configFile === "string") { + configFile = yield* (0, _files.loadConfig)(opts.configFile, context.cwd, context.envName, context.caller); + } else if (opts.configFile !== false) { + configFile = yield* (0, _files.findRootConfig)(context.root, context.envName, context.caller); + } + let { + babelrc, + babelrcRoots + } = opts; + let babelrcRootsDirectory = context.cwd; + const configFileChain = emptyChain(); + const configFileLogger = new _printer.ConfigPrinter(); + if (configFile) { + const validatedFile = validateConfigFile(configFile); + const result = yield* loadFileChain(validatedFile, context, undefined, configFileLogger); + if (!result) return null; + configReport = yield* configFileLogger.output(); + + if (babelrc === undefined) { + babelrc = validatedFile.options.babelrc; + } + if (babelrcRoots === undefined) { + babelrcRootsDirectory = validatedFile.dirname; + babelrcRoots = validatedFile.options.babelrcRoots; + } + mergeChain(configFileChain, result); + } + let ignoreFile, babelrcFile; + let isIgnored = false; + const fileChain = emptyChain(); + if ((babelrc === true || babelrc === undefined) && typeof context.filename === "string") { + const pkgData = yield* (0, _files.findPackageData)(context.filename); + if (pkgData && babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)) { + ({ + ignore: ignoreFile, + config: babelrcFile + } = yield* (0, _files.findRelativeConfig)(pkgData, context.envName, context.caller)); + if (ignoreFile) { + fileChain.files.add(ignoreFile.filepath); + } + if (ignoreFile && shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)) { + isIgnored = true; + } + if (babelrcFile && !isIgnored) { + const validatedFile = validateBabelrcFile(babelrcFile); + const babelrcLogger = new _printer.ConfigPrinter(); + const result = yield* loadFileChain(validatedFile, context, undefined, babelrcLogger); + if (!result) { + isIgnored = true; + } else { + babelRcReport = yield* babelrcLogger.output(); + mergeChain(fileChain, result); + } + } + if (babelrcFile && isIgnored) { + fileChain.files.add(babelrcFile.filepath); + } + } + } + if (context.showConfig) { + console.log(`Babel configs on "${context.filename}" (ascending priority):\n` + + [configReport, babelRcReport, programmaticReport].filter(x => !!x).join("\n\n") + "\n-----End Babel configs-----"); + } + const chain = mergeChain(mergeChain(mergeChain(emptyChain(), configFileChain), fileChain), programmaticChain); + return { + plugins: isIgnored ? [] : dedupDescriptors(chain.plugins), + presets: isIgnored ? [] : dedupDescriptors(chain.presets), + options: isIgnored ? [] : chain.options.map(o => normalizeOptions(o)), + fileHandling: isIgnored ? "ignored" : "transpile", + ignore: ignoreFile || undefined, + babelrc: babelrcFile || undefined, + config: configFile || undefined, + files: chain.files + }; +} +function babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory) { + if (typeof babelrcRoots === "boolean") return babelrcRoots; + const absoluteRoot = context.root; + + if (babelrcRoots === undefined) { + return pkgData.directories.indexOf(absoluteRoot) !== -1; + } + let babelrcPatterns = babelrcRoots; + if (!Array.isArray(babelrcPatterns)) { + babelrcPatterns = [babelrcPatterns]; + } + babelrcPatterns = babelrcPatterns.map(pat => { + return typeof pat === "string" ? _path().resolve(babelrcRootsDirectory, pat) : pat; + }); + + if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) { + return pkgData.directories.indexOf(absoluteRoot) !== -1; + } + return babelrcPatterns.some(pat => { + if (typeof pat === "string") { + pat = (0, _patternToRegex.default)(pat, babelrcRootsDirectory); + } + return pkgData.directories.some(directory => { + return matchPattern(pat, babelrcRootsDirectory, directory, context); + }); + }); +} +const validateConfigFile = (0, _caching.makeWeakCacheSync)(file => ({ + filepath: file.filepath, + dirname: file.dirname, + options: (0, _options.validate)("configfile", file.options, file.filepath) +})); +const validateBabelrcFile = (0, _caching.makeWeakCacheSync)(file => ({ + filepath: file.filepath, + dirname: file.dirname, + options: (0, _options.validate)("babelrcfile", file.options, file.filepath) +})); +const validateExtendFile = (0, _caching.makeWeakCacheSync)(file => ({ + filepath: file.filepath, + dirname: file.dirname, + options: (0, _options.validate)("extendsfile", file.options, file.filepath) +})); + +const loadProgrammaticChain = makeChainWalker({ + root: input => buildRootDescriptors(input, "base", _configDescriptors.createCachedDescriptors), + env: (input, envName) => buildEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, envName), + overrides: (input, index) => buildOverrideDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index), + overridesEnv: (input, index, envName) => buildOverrideEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index, envName), + createLogger: (input, context, baseLogger) => buildProgrammaticLogger(input, context, baseLogger) +}); + +const loadFileChainWalker = makeChainWalker({ + root: file => loadFileDescriptors(file), + env: (file, envName) => loadFileEnvDescriptors(file)(envName), + overrides: (file, index) => loadFileOverridesDescriptors(file)(index), + overridesEnv: (file, index, envName) => loadFileOverridesEnvDescriptors(file)(index)(envName), + createLogger: (file, context, baseLogger) => buildFileLogger(file.filepath, context, baseLogger) +}); +function* loadFileChain(input, context, files, baseLogger) { + const chain = yield* loadFileChainWalker(input, context, files, baseLogger); + if (chain) { + chain.files.add(input.filepath); + } + return chain; +} +const loadFileDescriptors = (0, _caching.makeWeakCacheSync)(file => buildRootDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors)); +const loadFileEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, envName))); +const loadFileOverridesDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index))); +const loadFileOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index, envName)))); +function buildFileLogger(filepath, context, baseLogger) { + if (!baseLogger) { + return () => {}; + } + return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Config, { + filepath + }); +} +function buildRootDescriptors({ + dirname, + options +}, alias, descriptors) { + return descriptors(dirname, options, alias); +} +function buildProgrammaticLogger(_, context, baseLogger) { + var _context$caller; + if (!baseLogger) { + return () => {}; + } + return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Programmatic, { + callerName: (_context$caller = context.caller) == null ? void 0 : _context$caller.name + }); +} +function buildEnvDescriptors({ + dirname, + options +}, alias, descriptors, envName) { + const opts = options.env && options.env[envName]; + return opts ? descriptors(dirname, opts, `${alias}.env["${envName}"]`) : null; +} +function buildOverrideDescriptors({ + dirname, + options +}, alias, descriptors, index) { + const opts = options.overrides && options.overrides[index]; + if (!opts) throw new Error("Assertion failure - missing override"); + return descriptors(dirname, opts, `${alias}.overrides[${index}]`); +} +function buildOverrideEnvDescriptors({ + dirname, + options +}, alias, descriptors, index, envName) { + const override = options.overrides && options.overrides[index]; + if (!override) throw new Error("Assertion failure - missing override"); + const opts = override.env && override.env[envName]; + return opts ? descriptors(dirname, opts, `${alias}.overrides[${index}].env["${envName}"]`) : null; +} +function makeChainWalker({ + root, + env, + overrides, + overridesEnv, + createLogger +}) { + return function* chainWalker(input, context, files = new Set(), baseLogger) { + const { + dirname + } = input; + const flattenedConfigs = []; + const rootOpts = root(input); + if (configIsApplicable(rootOpts, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: rootOpts, + envName: undefined, + index: undefined + }); + const envOpts = env(input, context.envName); + if (envOpts && configIsApplicable(envOpts, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: envOpts, + envName: context.envName, + index: undefined + }); + } + (rootOpts.options.overrides || []).forEach((_, index) => { + const overrideOps = overrides(input, index); + if (configIsApplicable(overrideOps, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: overrideOps, + index, + envName: undefined + }); + const overrideEnvOpts = overridesEnv(input, index, context.envName); + if (overrideEnvOpts && configIsApplicable(overrideEnvOpts, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: overrideEnvOpts, + index, + envName: context.envName + }); + } + } + }); + } + + if (flattenedConfigs.some(({ + config: { + options: { + ignore, + only + } + } + }) => shouldIgnore(context, ignore, only, dirname))) { + return null; + } + const chain = emptyChain(); + const logger = createLogger(input, context, baseLogger); + for (const { + config, + index, + envName + } of flattenedConfigs) { + if (!(yield* mergeExtendsChain(chain, config.options, dirname, context, files, baseLogger))) { + return null; + } + logger(config, index, envName); + yield* mergeChainOpts(chain, config); + } + return chain; + }; +} +function* mergeExtendsChain(chain, opts, dirname, context, files, baseLogger) { + if (opts.extends === undefined) return true; + const file = yield* (0, _files.loadConfig)(opts.extends, dirname, context.envName, context.caller); + if (files.has(file)) { + throw new Error(`Configuration cycle detected loading ${file.filepath}.\n` + `File already loaded following the config chain:\n` + Array.from(files, file => ` - ${file.filepath}`).join("\n")); + } + files.add(file); + const fileChain = yield* loadFileChain(validateExtendFile(file), context, files, baseLogger); + files.delete(file); + if (!fileChain) return false; + mergeChain(chain, fileChain); + return true; +} +function mergeChain(target, source) { + target.options.push(...source.options); + target.plugins.push(...source.plugins); + target.presets.push(...source.presets); + for (const file of source.files) { + target.files.add(file); + } + return target; +} +function* mergeChainOpts(target, { + options, + plugins, + presets +}) { + target.options.push(options); + target.plugins.push(...(yield* plugins())); + target.presets.push(...(yield* presets())); + return target; +} +function emptyChain() { + return { + options: [], + presets: [], + plugins: [], + files: new Set() + }; +} +function normalizeOptions(opts) { + const options = Object.assign({}, opts); + delete options.extends; + delete options.env; + delete options.overrides; + delete options.plugins; + delete options.presets; + delete options.passPerPreset; + delete options.ignore; + delete options.only; + delete options.test; + delete options.include; + delete options.exclude; + + if (Object.prototype.hasOwnProperty.call(options, "sourceMap")) { + options.sourceMaps = options.sourceMap; + delete options.sourceMap; + } + return options; +} +function dedupDescriptors(items) { + const map = new Map(); + const descriptors = []; + for (const item of items) { + if (typeof item.value === "function") { + const fnKey = item.value; + let nameMap = map.get(fnKey); + if (!nameMap) { + nameMap = new Map(); + map.set(fnKey, nameMap); + } + let desc = nameMap.get(item.name); + if (!desc) { + desc = { + value: item + }; + descriptors.push(desc); + + if (!item.ownPass) nameMap.set(item.name, desc); + } else { + desc.value = item; + } + } else { + descriptors.push({ + value: item + }); + } + } + return descriptors.reduce((acc, desc) => { + acc.push(desc.value); + return acc; + }, []); +} +function configIsApplicable({ + options +}, dirname, context, configName) { + return (options.test === undefined || configFieldIsApplicable(context, options.test, dirname, configName)) && (options.include === undefined || configFieldIsApplicable(context, options.include, dirname, configName)) && (options.exclude === undefined || !configFieldIsApplicable(context, options.exclude, dirname, configName)); +} +function configFieldIsApplicable(context, test, dirname, configName) { + const patterns = Array.isArray(test) ? test : [test]; + return matchesPatterns(context, patterns, dirname, configName); +} + +function ignoreListReplacer(_key, value) { + if (value instanceof RegExp) { + return String(value); + } + return value; +} + +function shouldIgnore(context, ignore, only, dirname) { + if (ignore && matchesPatterns(context, ignore, dirname)) { + var _context$filename; + const message = `No config is applied to "${(_context$filename = context.filename) != null ? _context$filename : "(unknown)"}" because it matches one of \`ignore: ${JSON.stringify(ignore, ignoreListReplacer)}\` from "${dirname}"`; + debug(message); + if (context.showConfig) { + console.log(message); + } + return true; + } + if (only && !matchesPatterns(context, only, dirname)) { + var _context$filename2; + const message = `No config is applied to "${(_context$filename2 = context.filename) != null ? _context$filename2 : "(unknown)"}" because it fails to match one of \`only: ${JSON.stringify(only, ignoreListReplacer)}\` from "${dirname}"`; + debug(message); + if (context.showConfig) { + console.log(message); + } + return true; + } + return false; +} + +function matchesPatterns(context, patterns, dirname, configName) { + return patterns.some(pattern => matchPattern(pattern, dirname, context.filename, context, configName)); +} +function matchPattern(pattern, dirname, pathToTest, context, configName) { + if (typeof pattern === "function") { + return !!(0, _rewriteStackTrace.endHiddenCallStack)(pattern)(pathToTest, { + dirname, + envName: context.envName, + caller: context.caller + }); + } + if (typeof pathToTest !== "string") { + throw new _configError.default(`Configuration contains string/RegExp pattern, but no filename was passed to Babel`, configName); + } + if (typeof pattern === "string") { + pattern = (0, _patternToRegex.default)(pattern, dirname); + } + return pattern.test(pathToTest); +} +0 && 0; + +//# sourceMappingURL=config-chain.js.map diff --git a/node_modules/@babel/core/lib/config/config-chain.js.map b/node_modules/@babel/core/lib/config/config-chain.js.map new file mode 100755 index 0000000..52a17cf --- /dev/null +++ b/node_modules/@babel/core/lib/config/config-chain.js.map @@ -0,0 +1 @@ +{"version":3,"names":["debug","buildDebug","buildPresetChain","arg","context","chain","buildPresetChainWalker","plugins","dedupDescriptors","presets","options","map","o","normalizeOptions","files","Set","makeChainWalker","root","preset","loadPresetDescriptors","env","envName","loadPresetEnvDescriptors","overrides","index","loadPresetOverridesDescriptors","overridesEnv","loadPresetOverridesEnvDescriptors","createLogger","makeWeakCacheSync","buildRootDescriptors","alias","createUncachedDescriptors","makeStrongCacheSync","buildEnvDescriptors","buildOverrideDescriptors","buildOverrideEnvDescriptors","buildRootChain","opts","configReport","babelRcReport","programmaticLogger","ConfigPrinter","programmaticChain","loadProgrammaticChain","dirname","cwd","undefined","programmaticReport","output","configFile","loadConfig","caller","findRootConfig","babelrc","babelrcRoots","babelrcRootsDirectory","configFileChain","emptyChain","configFileLogger","validatedFile","validateConfigFile","result","loadFileChain","mergeChain","ignoreFile","babelrcFile","isIgnored","fileChain","filename","pkgData","findPackageData","babelrcLoadEnabled","ignore","config","findRelativeConfig","add","filepath","shouldIgnore","validateBabelrcFile","babelrcLogger","showConfig","console","log","filter","x","join","fileHandling","absoluteRoot","directories","indexOf","babelrcPatterns","Array","isArray","pat","path","resolve","length","some","pathPatternToRegex","directory","matchPattern","file","validate","validateExtendFile","input","createCachedDescriptors","baseLogger","buildProgrammaticLogger","loadFileChainWalker","loadFileDescriptors","loadFileEnvDescriptors","loadFileOverridesDescriptors","loadFileOverridesEnvDescriptors","buildFileLogger","configure","ChainFormatter","Config","descriptors","_","Programmatic","callerName","name","Error","override","chainWalker","flattenedConfigs","rootOpts","configIsApplicable","push","envOpts","forEach","overrideOps","overrideEnvOpts","only","logger","mergeExtendsChain","mergeChainOpts","extends","has","from","delete","target","source","passPerPreset","test","include","exclude","Object","prototype","hasOwnProperty","call","sourceMaps","sourceMap","items","Map","item","value","fnKey","nameMap","get","set","desc","ownPass","reduce","acc","configName","configFieldIsApplicable","patterns","matchesPatterns","ignoreListReplacer","_key","RegExp","String","message","JSON","stringify","pattern","pathToTest","endHiddenCallStack","ConfigError"],"sources":["../../src/config/config-chain.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport path from \"path\";\nimport buildDebug from \"debug\";\nimport type { Handler } from \"gensync\";\nimport { validate } from \"./validation/options\";\nimport type {\n ValidatedOptions,\n IgnoreList,\n ConfigApplicableTest,\n BabelrcSearch,\n CallerMetadata,\n IgnoreItem,\n} from \"./validation/options\";\nimport pathPatternToRegex from \"./pattern-to-regex\";\nimport { ConfigPrinter, ChainFormatter } from \"./printer\";\nimport type { ReadonlyDeepArray } from \"./helpers/deep-array\";\n\nimport { endHiddenCallStack } from \"../errors/rewrite-stack-trace\";\nimport ConfigError from \"../errors/config-error\";\n\nconst debug = buildDebug(\"babel:config:config-chain\");\n\nimport {\n findPackageData,\n findRelativeConfig,\n findRootConfig,\n loadConfig,\n} from \"./files\";\nimport type { ConfigFile, IgnoreFile, FilePackageData } from \"./files\";\n\nimport { makeWeakCacheSync, makeStrongCacheSync } from \"./caching\";\n\nimport {\n createCachedDescriptors,\n createUncachedDescriptors,\n} from \"./config-descriptors\";\nimport type {\n UnloadedDescriptor,\n OptionsAndDescriptors,\n ValidatedFile,\n} from \"./config-descriptors\";\n\nexport type ConfigChain = {\n plugins: Array;\n presets: Array;\n options: Array;\n files: Set;\n};\n\nexport type PresetInstance = {\n options: ValidatedOptions;\n alias: string;\n dirname: string;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type ConfigContext = {\n filename: string | undefined;\n cwd: string;\n root: string;\n envName: string;\n caller: CallerMetadata | undefined;\n showConfig: boolean;\n};\n\n/**\n * Build a config chain for a given preset.\n */\nexport function* buildPresetChain(\n arg: PresetInstance,\n context: any,\n): Handler {\n const chain = yield* buildPresetChainWalker(arg, context);\n if (!chain) return null;\n\n return {\n plugins: dedupDescriptors(chain.plugins),\n presets: dedupDescriptors(chain.presets),\n options: chain.options.map(o => normalizeOptions(o)),\n files: new Set(),\n };\n}\n\nexport const buildPresetChainWalker = makeChainWalker({\n root: preset => loadPresetDescriptors(preset),\n env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName),\n overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index),\n overridesEnv: (preset, index, envName) =>\n loadPresetOverridesEnvDescriptors(preset)(index)(envName),\n createLogger: () => () => {}, // Currently we don't support logging how preset is expanded\n});\nconst loadPresetDescriptors = makeWeakCacheSync((preset: PresetInstance) =>\n buildRootDescriptors(preset, preset.alias, createUncachedDescriptors),\n);\nconst loadPresetEnvDescriptors = makeWeakCacheSync((preset: PresetInstance) =>\n makeStrongCacheSync((envName: string) =>\n buildEnvDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n envName,\n ),\n ),\n);\nconst loadPresetOverridesDescriptors = makeWeakCacheSync(\n (preset: PresetInstance) =>\n makeStrongCacheSync((index: number) =>\n buildOverrideDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n index,\n ),\n ),\n);\nconst loadPresetOverridesEnvDescriptors = makeWeakCacheSync(\n (preset: PresetInstance) =>\n makeStrongCacheSync((index: number) =>\n makeStrongCacheSync((envName: string) =>\n buildOverrideEnvDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n index,\n envName,\n ),\n ),\n ),\n);\n\nexport type FileHandling = \"transpile\" | \"ignored\" | \"unsupported\";\nexport type RootConfigChain = ConfigChain & {\n babelrc: ConfigFile | void;\n config: ConfigFile | void;\n ignore: IgnoreFile | void;\n fileHandling: FileHandling;\n files: Set;\n};\n\n/**\n * Build a config chain for Babel's full root configuration.\n */\nexport function* buildRootChain(\n opts: ValidatedOptions,\n context: ConfigContext,\n): Handler {\n let configReport, babelRcReport;\n const programmaticLogger = new ConfigPrinter();\n const programmaticChain = yield* loadProgrammaticChain(\n {\n options: opts,\n dirname: context.cwd,\n },\n context,\n undefined,\n programmaticLogger,\n );\n if (!programmaticChain) return null;\n const programmaticReport = yield* programmaticLogger.output();\n\n let configFile;\n if (typeof opts.configFile === \"string\") {\n configFile = yield* loadConfig(\n opts.configFile,\n context.cwd,\n context.envName,\n context.caller,\n );\n } else if (opts.configFile !== false) {\n configFile = yield* findRootConfig(\n context.root,\n context.envName,\n context.caller,\n );\n }\n\n let { babelrc, babelrcRoots } = opts;\n let babelrcRootsDirectory = context.cwd;\n\n const configFileChain = emptyChain();\n const configFileLogger = new ConfigPrinter();\n if (configFile) {\n const validatedFile = validateConfigFile(configFile);\n const result = yield* loadFileChain(\n validatedFile,\n context,\n undefined,\n configFileLogger,\n );\n if (!result) return null;\n configReport = yield* configFileLogger.output();\n\n // Allow config files to toggle `.babelrc` resolution on and off and\n // specify where the roots are.\n if (babelrc === undefined) {\n babelrc = validatedFile.options.babelrc;\n }\n if (babelrcRoots === undefined) {\n babelrcRootsDirectory = validatedFile.dirname;\n babelrcRoots = validatedFile.options.babelrcRoots;\n }\n\n mergeChain(configFileChain, result);\n }\n\n let ignoreFile, babelrcFile;\n let isIgnored = false;\n const fileChain = emptyChain();\n // resolve all .babelrc files\n if (\n (babelrc === true || babelrc === undefined) &&\n typeof context.filename === \"string\"\n ) {\n const pkgData = yield* findPackageData(context.filename);\n\n if (\n pkgData &&\n babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)\n ) {\n ({ ignore: ignoreFile, config: babelrcFile } = yield* findRelativeConfig(\n pkgData,\n context.envName,\n context.caller,\n ));\n\n if (ignoreFile) {\n fileChain.files.add(ignoreFile.filepath);\n }\n\n if (\n ignoreFile &&\n shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)\n ) {\n isIgnored = true;\n }\n\n if (babelrcFile && !isIgnored) {\n const validatedFile = validateBabelrcFile(babelrcFile);\n const babelrcLogger = new ConfigPrinter();\n const result = yield* loadFileChain(\n validatedFile,\n context,\n undefined,\n babelrcLogger,\n );\n if (!result) {\n isIgnored = true;\n } else {\n babelRcReport = yield* babelrcLogger.output();\n mergeChain(fileChain, result);\n }\n }\n\n if (babelrcFile && isIgnored) {\n fileChain.files.add(babelrcFile.filepath);\n }\n }\n }\n\n if (context.showConfig) {\n console.log(\n `Babel configs on \"${context.filename}\" (ascending priority):\\n` +\n // print config by the order of ascending priority\n [configReport, babelRcReport, programmaticReport]\n .filter(x => !!x)\n .join(\"\\n\\n\") +\n \"\\n-----End Babel configs-----\",\n );\n }\n // Insert file chain in front so programmatic options have priority\n // over configuration file chain items.\n const chain = mergeChain(\n mergeChain(mergeChain(emptyChain(), configFileChain), fileChain),\n programmaticChain,\n );\n\n return {\n plugins: isIgnored ? [] : dedupDescriptors(chain.plugins),\n presets: isIgnored ? [] : dedupDescriptors(chain.presets),\n options: isIgnored ? [] : chain.options.map(o => normalizeOptions(o)),\n fileHandling: isIgnored ? \"ignored\" : \"transpile\",\n ignore: ignoreFile || undefined,\n babelrc: babelrcFile || undefined,\n config: configFile || undefined,\n files: chain.files,\n };\n}\n\nfunction babelrcLoadEnabled(\n context: ConfigContext,\n pkgData: FilePackageData,\n babelrcRoots: BabelrcSearch | undefined,\n babelrcRootsDirectory: string,\n): boolean {\n if (typeof babelrcRoots === \"boolean\") return babelrcRoots;\n\n const absoluteRoot = context.root;\n\n // Fast path to avoid having to match patterns if the babelrc is just\n // loading in the standard root directory.\n if (babelrcRoots === undefined) {\n return pkgData.directories.indexOf(absoluteRoot) !== -1;\n }\n\n let babelrcPatterns = babelrcRoots;\n if (!Array.isArray(babelrcPatterns)) {\n babelrcPatterns = [babelrcPatterns as IgnoreItem];\n }\n babelrcPatterns = babelrcPatterns.map(pat => {\n return typeof pat === \"string\"\n ? path.resolve(babelrcRootsDirectory, pat)\n : pat;\n });\n\n // Fast path to avoid having to match patterns if the babelrc is just\n // loading in the standard root directory.\n if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) {\n return pkgData.directories.indexOf(absoluteRoot) !== -1;\n }\n\n return babelrcPatterns.some(pat => {\n if (typeof pat === \"string\") {\n pat = pathPatternToRegex(pat, babelrcRootsDirectory);\n }\n\n return pkgData.directories.some(directory => {\n return matchPattern(pat, babelrcRootsDirectory, directory, context);\n });\n });\n}\n\nconst validateConfigFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"configfile\", file.options, file.filepath),\n }),\n);\n\nconst validateBabelrcFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"babelrcfile\", file.options, file.filepath),\n }),\n);\n\nconst validateExtendFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"extendsfile\", file.options, file.filepath),\n }),\n);\n\n/**\n * Build a config chain for just the programmatic options passed into Babel.\n */\nconst loadProgrammaticChain = makeChainWalker({\n root: input => buildRootDescriptors(input, \"base\", createCachedDescriptors),\n env: (input, envName) =>\n buildEnvDescriptors(input, \"base\", createCachedDescriptors, envName),\n overrides: (input, index) =>\n buildOverrideDescriptors(input, \"base\", createCachedDescriptors, index),\n overridesEnv: (input, index, envName) =>\n buildOverrideEnvDescriptors(\n input,\n \"base\",\n createCachedDescriptors,\n index,\n envName,\n ),\n createLogger: (input, context, baseLogger) =>\n buildProgrammaticLogger(input, context, baseLogger),\n});\n\n/**\n * Build a config chain for a given file.\n */\nconst loadFileChainWalker = makeChainWalker({\n root: file => loadFileDescriptors(file),\n env: (file, envName) => loadFileEnvDescriptors(file)(envName),\n overrides: (file, index) => loadFileOverridesDescriptors(file)(index),\n overridesEnv: (file, index, envName) =>\n loadFileOverridesEnvDescriptors(file)(index)(envName),\n createLogger: (file, context, baseLogger) =>\n buildFileLogger(file.filepath, context, baseLogger),\n});\n\nfunction* loadFileChain(\n input: ValidatedFile,\n context: ConfigContext,\n files: Set,\n baseLogger: ConfigPrinter,\n) {\n const chain = yield* loadFileChainWalker(input, context, files, baseLogger);\n if (chain) {\n chain.files.add(input.filepath);\n }\n\n return chain;\n}\n\nconst loadFileDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n buildRootDescriptors(file, file.filepath, createUncachedDescriptors),\n);\nconst loadFileEnvDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n makeStrongCacheSync((envName: string) =>\n buildEnvDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n envName,\n ),\n ),\n);\nconst loadFileOverridesDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n makeStrongCacheSync((index: number) =>\n buildOverrideDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n index,\n ),\n ),\n);\nconst loadFileOverridesEnvDescriptors = makeWeakCacheSync(\n (file: ValidatedFile) =>\n makeStrongCacheSync((index: number) =>\n makeStrongCacheSync((envName: string) =>\n buildOverrideEnvDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n index,\n envName,\n ),\n ),\n ),\n);\n\nfunction buildFileLogger(\n filepath: string,\n context: ConfigContext,\n baseLogger: ConfigPrinter | void,\n) {\n if (!baseLogger) {\n return () => {};\n }\n return baseLogger.configure(context.showConfig, ChainFormatter.Config, {\n filepath,\n });\n}\n\nfunction buildRootDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n) {\n return descriptors(dirname, options, alias);\n}\n\nfunction buildProgrammaticLogger(\n _: unknown,\n context: ConfigContext,\n baseLogger: ConfigPrinter | void,\n) {\n if (!baseLogger) {\n return () => {};\n }\n return baseLogger.configure(context.showConfig, ChainFormatter.Programmatic, {\n callerName: context.caller?.name,\n });\n}\n\nfunction buildEnvDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n envName: string,\n) {\n const opts = options.env && options.env[envName];\n return opts ? descriptors(dirname, opts, `${alias}.env[\"${envName}\"]`) : null;\n}\n\nfunction buildOverrideDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n index: number,\n) {\n const opts = options.overrides && options.overrides[index];\n if (!opts) throw new Error(\"Assertion failure - missing override\");\n\n return descriptors(dirname, opts, `${alias}.overrides[${index}]`);\n}\n\nfunction buildOverrideEnvDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n index: number,\n envName: string,\n) {\n const override = options.overrides && options.overrides[index];\n if (!override) throw new Error(\"Assertion failure - missing override\");\n\n const opts = override.env && override.env[envName];\n return opts\n ? descriptors(\n dirname,\n opts,\n `${alias}.overrides[${index}].env[\"${envName}\"]`,\n )\n : null;\n}\n\nfunction makeChainWalker<\n ArgT extends {\n options: ValidatedOptions;\n dirname: string;\n filepath?: string;\n },\n>({\n root,\n env,\n overrides,\n overridesEnv,\n createLogger,\n}: {\n root: (configEntry: ArgT) => OptionsAndDescriptors;\n env: (configEntry: ArgT, env: string) => OptionsAndDescriptors | null;\n overrides: (configEntry: ArgT, index: number) => OptionsAndDescriptors;\n overridesEnv: (\n configEntry: ArgT,\n index: number,\n env: string,\n ) => OptionsAndDescriptors | null;\n createLogger: (\n configEntry: ArgT,\n context: ConfigContext,\n printer: ConfigPrinter | void,\n ) => (\n opts: OptionsAndDescriptors,\n index?: number | null,\n env?: string | null,\n ) => void;\n}): (\n configEntry: ArgT,\n context: ConfigContext,\n files?: Set,\n baseLogger?: ConfigPrinter,\n) => Handler {\n return function* chainWalker(input, context, files = new Set(), baseLogger) {\n const { dirname } = input;\n\n const flattenedConfigs: Array<{\n config: OptionsAndDescriptors;\n index: number | undefined | null;\n envName: string | undefined | null;\n }> = [];\n\n const rootOpts = root(input);\n if (configIsApplicable(rootOpts, dirname, context, input.filepath)) {\n flattenedConfigs.push({\n config: rootOpts,\n envName: undefined,\n index: undefined,\n });\n\n const envOpts = env(input, context.envName);\n if (\n envOpts &&\n configIsApplicable(envOpts, dirname, context, input.filepath)\n ) {\n flattenedConfigs.push({\n config: envOpts,\n envName: context.envName,\n index: undefined,\n });\n }\n\n (rootOpts.options.overrides || []).forEach((_, index) => {\n const overrideOps = overrides(input, index);\n if (configIsApplicable(overrideOps, dirname, context, input.filepath)) {\n flattenedConfigs.push({\n config: overrideOps,\n index,\n envName: undefined,\n });\n\n const overrideEnvOpts = overridesEnv(input, index, context.envName);\n if (\n overrideEnvOpts &&\n configIsApplicable(\n overrideEnvOpts,\n dirname,\n context,\n input.filepath,\n )\n ) {\n flattenedConfigs.push({\n config: overrideEnvOpts,\n index,\n envName: context.envName,\n });\n }\n }\n });\n }\n\n // Process 'ignore' and 'only' before 'extends' items are processed so\n // that we don't do extra work loading extended configs if a file is\n // ignored.\n if (\n flattenedConfigs.some(\n ({\n config: {\n options: { ignore, only },\n },\n }) => shouldIgnore(context, ignore, only, dirname),\n )\n ) {\n return null;\n }\n\n const chain = emptyChain();\n const logger = createLogger(input, context, baseLogger);\n\n for (const { config, index, envName } of flattenedConfigs) {\n if (\n !(yield* mergeExtendsChain(\n chain,\n config.options,\n dirname,\n context,\n files,\n baseLogger,\n ))\n ) {\n return null;\n }\n\n logger(config, index, envName);\n yield* mergeChainOpts(chain, config);\n }\n return chain;\n };\n}\n\nfunction* mergeExtendsChain(\n chain: ConfigChain,\n opts: ValidatedOptions,\n dirname: string,\n context: ConfigContext,\n files: Set,\n baseLogger?: ConfigPrinter,\n): Handler {\n if (opts.extends === undefined) return true;\n\n const file = yield* loadConfig(\n opts.extends,\n dirname,\n context.envName,\n context.caller,\n );\n\n if (files.has(file)) {\n throw new Error(\n `Configuration cycle detected loading ${file.filepath}.\\n` +\n `File already loaded following the config chain:\\n` +\n Array.from(files, file => ` - ${file.filepath}`).join(\"\\n\"),\n );\n }\n\n files.add(file);\n const fileChain = yield* loadFileChain(\n validateExtendFile(file),\n context,\n files,\n baseLogger,\n );\n files.delete(file);\n\n if (!fileChain) return false;\n\n mergeChain(chain, fileChain);\n\n return true;\n}\n\nfunction mergeChain(target: ConfigChain, source: ConfigChain): ConfigChain {\n target.options.push(...source.options);\n target.plugins.push(...source.plugins);\n target.presets.push(...source.presets);\n for (const file of source.files) {\n target.files.add(file);\n }\n\n return target;\n}\n\nfunction* mergeChainOpts(\n target: ConfigChain,\n { options, plugins, presets }: OptionsAndDescriptors,\n): Handler {\n target.options.push(options);\n target.plugins.push(...(yield* plugins()));\n target.presets.push(...(yield* presets()));\n\n return target;\n}\n\nfunction emptyChain(): ConfigChain {\n return {\n options: [],\n presets: [],\n plugins: [],\n files: new Set(),\n };\n}\n\nfunction normalizeOptions(opts: ValidatedOptions): ValidatedOptions {\n const options = {\n ...opts,\n };\n delete options.extends;\n delete options.env;\n delete options.overrides;\n delete options.plugins;\n delete options.presets;\n delete options.passPerPreset;\n delete options.ignore;\n delete options.only;\n delete options.test;\n delete options.include;\n delete options.exclude;\n\n // \"sourceMap\" is just aliased to sourceMap, so copy it over as\n // we merge the options together.\n if (Object.prototype.hasOwnProperty.call(options, \"sourceMap\")) {\n options.sourceMaps = options.sourceMap;\n delete options.sourceMap;\n }\n return options;\n}\n\nfunction dedupDescriptors(\n items: Array,\n): Array {\n const map: Map<\n Function,\n Map\n > = new Map();\n\n const descriptors = [];\n\n for (const item of items) {\n if (typeof item.value === \"function\") {\n const fnKey = item.value;\n let nameMap = map.get(fnKey);\n if (!nameMap) {\n nameMap = new Map();\n map.set(fnKey, nameMap);\n }\n let desc = nameMap.get(item.name);\n if (!desc) {\n desc = { value: item };\n descriptors.push(desc);\n\n // Treat passPerPreset presets as unique, skipping them\n // in the merge processing steps.\n if (!item.ownPass) nameMap.set(item.name, desc);\n } else {\n desc.value = item;\n }\n } else {\n descriptors.push({ value: item });\n }\n }\n\n return descriptors.reduce((acc, desc) => {\n acc.push(desc.value);\n return acc;\n }, []);\n}\n\nfunction configIsApplicable(\n { options }: OptionsAndDescriptors,\n dirname: string,\n context: ConfigContext,\n configName: string,\n): boolean {\n return (\n (options.test === undefined ||\n configFieldIsApplicable(context, options.test, dirname, configName)) &&\n (options.include === undefined ||\n configFieldIsApplicable(context, options.include, dirname, configName)) &&\n (options.exclude === undefined ||\n !configFieldIsApplicable(context, options.exclude, dirname, configName))\n );\n}\n\nfunction configFieldIsApplicable(\n context: ConfigContext,\n test: ConfigApplicableTest,\n dirname: string,\n configName: string,\n): boolean {\n const patterns = Array.isArray(test) ? test : [test];\n\n return matchesPatterns(context, patterns, dirname, configName);\n}\n\n/**\n * Print the ignoreList-values in a more helpful way than the default.\n */\nfunction ignoreListReplacer(\n _key: string,\n value: IgnoreList | IgnoreItem,\n): IgnoreList | IgnoreItem | string {\n if (value instanceof RegExp) {\n return String(value);\n }\n\n return value;\n}\n\n/**\n * Tests if a filename should be ignored based on \"ignore\" and \"only\" options.\n */\nfunction shouldIgnore(\n context: ConfigContext,\n ignore: IgnoreList | undefined | null,\n only: IgnoreList | undefined | null,\n dirname: string,\n): boolean {\n if (ignore && matchesPatterns(context, ignore, dirname)) {\n const message = `No config is applied to \"${\n context.filename ?? \"(unknown)\"\n }\" because it matches one of \\`ignore: ${JSON.stringify(\n ignore,\n ignoreListReplacer,\n )}\\` from \"${dirname}\"`;\n debug(message);\n if (context.showConfig) {\n console.log(message);\n }\n return true;\n }\n\n if (only && !matchesPatterns(context, only, dirname)) {\n const message = `No config is applied to \"${\n context.filename ?? \"(unknown)\"\n }\" because it fails to match one of \\`only: ${JSON.stringify(\n only,\n ignoreListReplacer,\n )}\\` from \"${dirname}\"`;\n debug(message);\n if (context.showConfig) {\n console.log(message);\n }\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns result of calling function with filename if pattern is a function.\n * Otherwise returns result of matching pattern Regex with filename.\n */\nfunction matchesPatterns(\n context: ConfigContext,\n patterns: IgnoreList,\n dirname: string,\n configName?: string,\n): boolean {\n return patterns.some(pattern =>\n matchPattern(pattern, dirname, context.filename, context, configName),\n );\n}\n\nfunction matchPattern(\n pattern: IgnoreItem,\n dirname: string,\n pathToTest: string | undefined,\n context: ConfigContext,\n configName?: string,\n): boolean {\n if (typeof pattern === \"function\") {\n return !!endHiddenCallStack(pattern)(pathToTest, {\n dirname,\n envName: context.envName,\n caller: context.caller,\n });\n }\n\n if (typeof pathToTest !== \"string\") {\n throw new ConfigError(\n `Configuration contains string/RegExp pattern, but no filename was passed to Babel`,\n configName,\n );\n }\n\n if (typeof pattern === \"string\") {\n pattern = pathPatternToRegex(pattern, dirname);\n }\n return pattern.test(pathToTest);\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/config-descriptors.js b/node_modules/@babel/core/lib/config/config-descriptors.js new file mode 100755 index 0000000..83f34ec --- /dev/null +++ b/node_modules/@babel/core/lib/config/config-descriptors.js @@ -0,0 +1,198 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createCachedDescriptors = createCachedDescriptors; +exports.createDescriptor = createDescriptor; +exports.createUncachedDescriptors = createUncachedDescriptors; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _functional = require("../gensync-utils/functional"); +var _files = require("./files"); +var _item = require("./item"); +var _caching = require("./caching"); +var _resolveTargets = require("./resolve-targets"); +function isEqualDescriptor(a, b) { + return a.name === b.name && a.value === b.value && a.options === b.options && a.dirname === b.dirname && a.alias === b.alias && a.ownPass === b.ownPass && (a.file && a.file.request) === (b.file && b.file.request) && (a.file && a.file.resolved) === (b.file && b.file.resolved); +} +function* handlerOf(value) { + return value; +} +function optionsWithResolvedBrowserslistConfigFile(options, dirname) { + if (typeof options.browserslistConfigFile === "string") { + options.browserslistConfigFile = (0, _resolveTargets.resolveBrowserslistConfigFile)(options.browserslistConfigFile, dirname); + } + return options; +} + +function createCachedDescriptors(dirname, options, alias) { + const { + plugins, + presets, + passPerPreset + } = options; + return { + options: optionsWithResolvedBrowserslistConfigFile(options, dirname), + plugins: plugins ? () => + createCachedPluginDescriptors(plugins, dirname)(alias) : () => handlerOf([]), + presets: presets ? () => + createCachedPresetDescriptors(presets, dirname)(alias)(!!passPerPreset) : () => handlerOf([]) + }; +} + +function createUncachedDescriptors(dirname, options, alias) { + return { + options: optionsWithResolvedBrowserslistConfigFile(options, dirname), + plugins: (0, _functional.once)(() => createPluginDescriptors(options.plugins || [], dirname, alias)), + presets: (0, _functional.once)(() => createPresetDescriptors(options.presets || [], dirname, alias, !!options.passPerPreset)) + }; +} +const PRESET_DESCRIPTOR_CACHE = new WeakMap(); +const createCachedPresetDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => { + const dirname = cache.using(dir => dir); + return (0, _caching.makeStrongCacheSync)(alias => (0, _caching.makeStrongCache)(function* (passPerPreset) { + const descriptors = yield* createPresetDescriptors(items, dirname, alias, passPerPreset); + return descriptors.map( + desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc)); + })); +}); +const PLUGIN_DESCRIPTOR_CACHE = new WeakMap(); +const createCachedPluginDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => { + const dirname = cache.using(dir => dir); + return (0, _caching.makeStrongCache)(function* (alias) { + const descriptors = yield* createPluginDescriptors(items, dirname, alias); + return descriptors.map( + desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc)); + }); +}); + +const DEFAULT_OPTIONS = {}; + +function loadCachedDescriptor(cache, desc) { + const { + value, + options = DEFAULT_OPTIONS + } = desc; + if (options === false) return desc; + let cacheByOptions = cache.get(value); + if (!cacheByOptions) { + cacheByOptions = new WeakMap(); + cache.set(value, cacheByOptions); + } + let possibilities = cacheByOptions.get(options); + if (!possibilities) { + possibilities = []; + cacheByOptions.set(options, possibilities); + } + if (possibilities.indexOf(desc) === -1) { + const matches = possibilities.filter(possibility => isEqualDescriptor(possibility, desc)); + if (matches.length > 0) { + return matches[0]; + } + possibilities.push(desc); + } + return desc; +} +function* createPresetDescriptors(items, dirname, alias, passPerPreset) { + return yield* createDescriptors("preset", items, dirname, alias, passPerPreset); +} +function* createPluginDescriptors(items, dirname, alias) { + return yield* createDescriptors("plugin", items, dirname, alias); +} +function* createDescriptors(type, items, dirname, alias, ownPass) { + const descriptors = yield* _gensync().all(items.map((item, index) => createDescriptor(item, dirname, { + type, + alias: `${alias}$${index}`, + ownPass: !!ownPass + }))); + assertNoDuplicates(descriptors); + return descriptors; +} + +function* createDescriptor(pair, dirname, { + type, + alias, + ownPass +}) { + const desc = (0, _item.getItemDescriptor)(pair); + if (desc) { + return desc; + } + let name; + let options; + let value = pair; + if (Array.isArray(value)) { + if (value.length === 3) { + [value, options, name] = value; + } else { + [value, options] = value; + } + } + let file = undefined; + let filepath = null; + if (typeof value === "string") { + if (typeof type !== "string") { + throw new Error("To resolve a string-based item, the type of item must be given"); + } + const resolver = type === "plugin" ? _files.loadPlugin : _files.loadPreset; + const request = value; + ({ + filepath, + value + } = yield* resolver(value, dirname)); + file = { + request, + resolved: filepath + }; + } + if (!value) { + throw new Error(`Unexpected falsy value: ${String(value)}`); + } + if (typeof value === "object" && value.__esModule) { + if (value.default) { + value = value.default; + } else { + throw new Error("Must export a default export when using ES6 modules."); + } + } + if (typeof value !== "object" && typeof value !== "function") { + throw new Error(`Unsupported format: ${typeof value}. Expected an object or a function.`); + } + if (filepath !== null && typeof value === "object" && value) { + throw new Error(`Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`); + } + return { + name, + alias: filepath || alias, + value, + options, + dirname, + ownPass, + file + }; +} +function assertNoDuplicates(items) { + const map = new Map(); + for (const item of items) { + if (typeof item.value !== "function") continue; + let nameMap = map.get(item.value); + if (!nameMap) { + nameMap = new Set(); + map.set(item.value, nameMap); + } + if (nameMap.has(item.name)) { + const conflicts = items.filter(i => i.value === item.value); + throw new Error([`Duplicate plugin/preset detected.`, `If you'd like to use two separate instances of a plugin,`, `they need separate names, e.g.`, ``, ` plugins: [`, ` ['some-plugin', {}],`, ` ['some-plugin', {}, 'some unique name'],`, ` ]`, ``, `Duplicates detected are:`, `${JSON.stringify(conflicts, null, 2)}`].join("\n")); + } + nameMap.add(item.name); + } +} +0 && 0; + +//# sourceMappingURL=config-descriptors.js.map diff --git a/node_modules/@babel/core/lib/config/config-descriptors.js.map b/node_modules/@babel/core/lib/config/config-descriptors.js.map new file mode 100755 index 0000000..152ce0d --- /dev/null +++ b/node_modules/@babel/core/lib/config/config-descriptors.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isEqualDescriptor","a","b","name","value","options","dirname","alias","ownPass","file","request","resolved","handlerOf","optionsWithResolvedBrowserslistConfigFile","browserslistConfigFile","resolveBrowserslistConfigFile","createCachedDescriptors","plugins","presets","passPerPreset","createCachedPluginDescriptors","createCachedPresetDescriptors","createUncachedDescriptors","once","createPluginDescriptors","createPresetDescriptors","PRESET_DESCRIPTOR_CACHE","WeakMap","makeWeakCacheSync","items","cache","using","dir","makeStrongCacheSync","makeStrongCache","descriptors","map","desc","loadCachedDescriptor","PLUGIN_DESCRIPTOR_CACHE","DEFAULT_OPTIONS","cacheByOptions","get","set","possibilities","indexOf","matches","filter","possibility","length","push","createDescriptors","type","gensync","all","item","index","createDescriptor","assertNoDuplicates","pair","getItemDescriptor","Array","isArray","undefined","filepath","Error","resolver","loadPlugin","loadPreset","String","__esModule","default","Map","nameMap","Set","has","conflicts","i","JSON","stringify","join","add"],"sources":["../../src/config/config-descriptors.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\nimport { once } from \"../gensync-utils/functional\";\n\nimport { loadPlugin, loadPreset } from \"./files\";\n\nimport { getItemDescriptor } from \"./item\";\n\nimport {\n makeWeakCacheSync,\n makeStrongCacheSync,\n makeStrongCache,\n} from \"./caching\";\nimport type { CacheConfigurator } from \"./caching\";\n\nimport type {\n ValidatedOptions,\n PluginList,\n PluginItem,\n} from \"./validation/options\";\n\nimport { resolveBrowserslistConfigFile } from \"./resolve-targets\";\n\n// Represents a config object and functions to lazily load the descriptors\n// for the plugins and presets so we don't load the plugins/presets unless\n// the options object actually ends up being applicable.\nexport type OptionsAndDescriptors = {\n options: ValidatedOptions;\n plugins: () => Handler>;\n presets: () => Handler>;\n};\n\n// Represents a plugin or presets at a given location in a config object.\n// At this point these have been resolved to a specific object or function,\n// but have not yet been executed to call functions with options.\nexport type UnloadedDescriptor = {\n name: string | undefined;\n value: any | Function;\n options: {} | undefined | false;\n dirname: string;\n alias: string;\n ownPass?: boolean;\n file?: {\n request: string;\n resolved: string;\n };\n};\n\nfunction isEqualDescriptor(\n a: UnloadedDescriptor,\n b: UnloadedDescriptor,\n): boolean {\n return (\n a.name === b.name &&\n a.value === b.value &&\n a.options === b.options &&\n a.dirname === b.dirname &&\n a.alias === b.alias &&\n a.ownPass === b.ownPass &&\n (a.file && a.file.request) === (b.file && b.file.request) &&\n (a.file && a.file.resolved) === (b.file && b.file.resolved)\n );\n}\n\nexport type ValidatedFile = {\n filepath: string;\n dirname: string;\n options: ValidatedOptions;\n};\n\n// eslint-disable-next-line require-yield\nfunction* handlerOf(value: T): Handler {\n return value;\n}\n\nfunction optionsWithResolvedBrowserslistConfigFile(\n options: ValidatedOptions,\n dirname: string,\n): ValidatedOptions {\n if (typeof options.browserslistConfigFile === \"string\") {\n options.browserslistConfigFile = resolveBrowserslistConfigFile(\n options.browserslistConfigFile,\n dirname,\n );\n }\n return options;\n}\n\n/**\n * Create a set of descriptors from a given options object, preserving\n * descriptor identity based on the identity of the plugin/preset arrays\n * themselves, and potentially on the identity of the plugins/presets + options.\n */\nexport function createCachedDescriptors(\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n): OptionsAndDescriptors {\n const { plugins, presets, passPerPreset } = options;\n return {\n options: optionsWithResolvedBrowserslistConfigFile(options, dirname),\n plugins: plugins\n ? () =>\n // @ts-expect-error todo(flow->ts) ts complains about incorrect arguments\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n createCachedPluginDescriptors(plugins, dirname)(alias)\n : () => handlerOf([]),\n presets: presets\n ? () =>\n // @ts-expect-error todo(flow->ts) ts complains about incorrect arguments\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n createCachedPresetDescriptors(presets, dirname)(alias)(\n !!passPerPreset,\n )\n : () => handlerOf([]),\n };\n}\n\n/**\n * Create a set of descriptors from a given options object, with consistent\n * identity for the descriptors, but not caching based on any specific identity.\n */\nexport function createUncachedDescriptors(\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n): OptionsAndDescriptors {\n return {\n options: optionsWithResolvedBrowserslistConfigFile(options, dirname),\n // The returned result here is cached to represent a config object in\n // memory, so we build and memoize the descriptors to ensure the same\n // values are returned consistently.\n plugins: once(() =>\n createPluginDescriptors(options.plugins || [], dirname, alias),\n ),\n presets: once(() =>\n createPresetDescriptors(\n options.presets || [],\n dirname,\n alias,\n !!options.passPerPreset,\n ),\n ),\n };\n}\n\nconst PRESET_DESCRIPTOR_CACHE = new WeakMap();\nconst createCachedPresetDescriptors = makeWeakCacheSync(\n (items: PluginList, cache: CacheConfigurator) => {\n const dirname = cache.using(dir => dir);\n return makeStrongCacheSync((alias: string) =>\n makeStrongCache(function* (\n passPerPreset: boolean,\n ): Handler> {\n const descriptors = yield* createPresetDescriptors(\n items,\n dirname,\n alias,\n passPerPreset,\n );\n return descriptors.map(\n // Items are cached using the overall preset array identity when\n // possibly, but individual descriptors are also cached if a match\n // can be found in the previously-used descriptor lists.\n desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc),\n );\n }),\n );\n },\n);\n\nconst PLUGIN_DESCRIPTOR_CACHE = new WeakMap();\nconst createCachedPluginDescriptors = makeWeakCacheSync(\n (items: PluginList, cache: CacheConfigurator) => {\n const dirname = cache.using(dir => dir);\n return makeStrongCache(function* (\n alias: string,\n ): Handler> {\n const descriptors = yield* createPluginDescriptors(items, dirname, alias);\n return descriptors.map(\n // Items are cached using the overall plugin array identity when\n // possibly, but individual descriptors are also cached if a match\n // can be found in the previously-used descriptor lists.\n desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc),\n );\n });\n },\n);\n\n/**\n * When no options object is given in a descriptor, this object is used\n * as a WeakMap key in order to have consistent identity.\n */\nconst DEFAULT_OPTIONS = {};\n\n/**\n * Given the cache and a descriptor, returns a matching descriptor from the\n * cache, or else returns the input descriptor and adds it to the cache for\n * next time.\n */\nfunction loadCachedDescriptor(\n cache: WeakMap<{} | Function, WeakMap<{}, Array>>,\n desc: UnloadedDescriptor,\n) {\n const { value, options = DEFAULT_OPTIONS } = desc;\n if (options === false) return desc;\n\n let cacheByOptions = cache.get(value);\n if (!cacheByOptions) {\n cacheByOptions = new WeakMap();\n cache.set(value, cacheByOptions);\n }\n\n let possibilities = cacheByOptions.get(options);\n if (!possibilities) {\n possibilities = [];\n cacheByOptions.set(options, possibilities);\n }\n\n if (possibilities.indexOf(desc) === -1) {\n const matches = possibilities.filter(possibility =>\n isEqualDescriptor(possibility, desc),\n );\n if (matches.length > 0) {\n return matches[0];\n }\n\n possibilities.push(desc);\n }\n\n return desc;\n}\n\nfunction* createPresetDescriptors(\n items: PluginList,\n dirname: string,\n alias: string,\n passPerPreset: boolean,\n): Handler> {\n return yield* createDescriptors(\n \"preset\",\n items,\n dirname,\n alias,\n passPerPreset,\n );\n}\n\nfunction* createPluginDescriptors(\n items: PluginList,\n dirname: string,\n alias: string,\n): Handler> {\n return yield* createDescriptors(\"plugin\", items, dirname, alias);\n}\n\nfunction* createDescriptors(\n type: \"plugin\" | \"preset\",\n items: PluginList,\n dirname: string,\n alias: string,\n ownPass?: boolean,\n): Handler> {\n const descriptors = yield* gensync.all(\n items.map((item, index) =>\n createDescriptor(item, dirname, {\n type,\n alias: `${alias}$${index}`,\n ownPass: !!ownPass,\n }),\n ),\n );\n\n assertNoDuplicates(descriptors);\n\n return descriptors;\n}\n\n/**\n * Given a plugin/preset item, resolve it into a standard format.\n */\nexport function* createDescriptor(\n pair: PluginItem,\n dirname: string,\n {\n type,\n alias,\n ownPass,\n }: {\n type?: \"plugin\" | \"preset\";\n alias: string;\n ownPass?: boolean;\n },\n): Handler {\n const desc = getItemDescriptor(pair);\n if (desc) {\n return desc;\n }\n\n let name;\n let options;\n // todo(flow->ts) better type annotation\n let value: any = pair;\n if (Array.isArray(value)) {\n if (value.length === 3) {\n [value, options, name] = value;\n } else {\n [value, options] = value;\n }\n }\n\n let file = undefined;\n let filepath = null;\n if (typeof value === \"string\") {\n if (typeof type !== \"string\") {\n throw new Error(\n \"To resolve a string-based item, the type of item must be given\",\n );\n }\n const resolver = type === \"plugin\" ? loadPlugin : loadPreset;\n const request = value;\n\n ({ filepath, value } = yield* resolver(value, dirname));\n\n file = {\n request,\n resolved: filepath,\n };\n }\n\n if (!value) {\n throw new Error(`Unexpected falsy value: ${String(value)}`);\n }\n\n if (typeof value === \"object\" && value.__esModule) {\n if (value.default) {\n value = value.default;\n } else {\n throw new Error(\"Must export a default export when using ES6 modules.\");\n }\n }\n\n if (typeof value !== \"object\" && typeof value !== \"function\") {\n throw new Error(\n `Unsupported format: ${typeof value}. Expected an object or a function.`,\n );\n }\n\n if (filepath !== null && typeof value === \"object\" && value) {\n // We allow object values for plugins/presets nested directly within a\n // config object, because it can be useful to define them in nested\n // configuration contexts.\n throw new Error(\n `Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`,\n );\n }\n\n return {\n name,\n alias: filepath || alias,\n value,\n options,\n dirname,\n ownPass,\n file,\n };\n}\n\nfunction assertNoDuplicates(items: Array): void {\n const map = new Map();\n\n for (const item of items) {\n if (typeof item.value !== \"function\") continue;\n\n let nameMap = map.get(item.value);\n if (!nameMap) {\n nameMap = new Set();\n map.set(item.value, nameMap);\n }\n\n if (nameMap.has(item.name)) {\n const conflicts = items.filter(i => i.value === item.value);\n throw new Error(\n [\n `Duplicate plugin/preset detected.`,\n `If you'd like to use two separate instances of a plugin,`,\n `they need separate names, e.g.`,\n ``,\n ` plugins: [`,\n ` ['some-plugin', {}],`,\n ` ['some-plugin', {}, 'some unique name'],`,\n ` ]`,\n ``,\n `Duplicates detected are:`,\n `${JSON.stringify(conflicts, null, 2)}`,\n ].join(\"\\n\"),\n );\n }\n\n nameMap.add(item.name);\n }\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/configuration.js b/node_modules/@babel/core/lib/config/files/configuration.js new file mode 100755 index 0000000..d5494d5 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/configuration.js @@ -0,0 +1,286 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ROOT_CONFIG_FILENAMES = void 0; +exports.findConfigUpwards = findConfigUpwards; +exports.findRelativeConfig = findRelativeConfig; +exports.findRootConfig = findRootConfig; +exports.loadConfig = loadConfig; +exports.resolveShowConfigPath = resolveShowConfigPath; +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +function _fs() { + const data = require("fs"); + _fs = function () { + return data; + }; + return data; +} +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _json() { + const data = require("json5"); + _json = function () { + return data; + }; + return data; +} +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _caching = require("../caching"); +var _configApi = require("../helpers/config-api"); +var _utils = require("./utils"); +var _moduleTypes = require("./module-types"); +var _patternToRegex = require("../pattern-to-regex"); +var _configError = require("../../errors/config-error"); +var fs = require("../../gensync-utils/fs"); +function _module() { + const data = require("module"); + _module = function () { + return data; + }; + return data; +} +var _rewriteStackTrace = require("../../errors/rewrite-stack-trace"); +const debug = _debug()("babel:config:loading:files:configuration"); +const ROOT_CONFIG_FILENAMES = ["babel.config.js", "babel.config.cjs", "babel.config.mjs", "babel.config.json"]; +exports.ROOT_CONFIG_FILENAMES = ROOT_CONFIG_FILENAMES; +const RELATIVE_CONFIG_FILENAMES = [".babelrc", ".babelrc.js", ".babelrc.cjs", ".babelrc.mjs", ".babelrc.json"]; +const BABELIGNORE_FILENAME = ".babelignore"; +const LOADING_CONFIGS = new Set(); +const readConfigJS = (0, _caching.makeStrongCache)(function* readConfigJS(filepath, cache) { + if (!_fs().existsSync(filepath)) { + cache.never(); + return null; + } + + if (LOADING_CONFIGS.has(filepath)) { + cache.never(); + debug("Auto-ignoring usage of config %o.", filepath); + return { + filepath, + dirname: _path().dirname(filepath), + options: {} + }; + } + let options; + try { + LOADING_CONFIGS.add(filepath); + options = yield* (0, _moduleTypes.default)(filepath, "You appear to be using a native ECMAScript module configuration " + "file, which is only supported when running Babel asynchronously."); + } finally { + LOADING_CONFIGS.delete(filepath); + } + let assertCache = false; + if (typeof options === "function") { + yield* []; + options = (0, _rewriteStackTrace.endHiddenCallStack)(options)((0, _configApi.makeConfigAPI)(cache)); + assertCache = true; + } + if (!options || typeof options !== "object" || Array.isArray(options)) { + throw new _configError.default(`Configuration should be an exported JavaScript object.`, filepath); + } + + if (typeof options.then === "function") { + throw new _configError.default(`You appear to be using an async configuration, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously return your config.`, filepath); + } + if (assertCache && !cache.configured()) throwConfigError(filepath); + return { + filepath, + dirname: _path().dirname(filepath), + options + }; +}); +const packageToBabelConfig = (0, _caching.makeWeakCacheSync)(file => { + const babel = file.options["babel"]; + if (typeof babel === "undefined") return null; + if (typeof babel !== "object" || Array.isArray(babel) || babel === null) { + throw new _configError.default(`.babel property must be an object`, file.filepath); + } + return { + filepath: file.filepath, + dirname: file.dirname, + options: babel + }; +}); +const readConfigJSON5 = (0, _utils.makeStaticFileCache)((filepath, content) => { + let options; + try { + options = _json().parse(content); + } catch (err) { + throw new _configError.default(`Error while parsing config - ${err.message}`, filepath); + } + if (!options) throw new _configError.default(`No config detected`, filepath); + if (typeof options !== "object") { + throw new _configError.default(`Config returned typeof ${typeof options}`, filepath); + } + if (Array.isArray(options)) { + throw new _configError.default(`Expected config object but found array`, filepath); + } + delete options["$schema"]; + return { + filepath, + dirname: _path().dirname(filepath), + options + }; +}); +const readIgnoreConfig = (0, _utils.makeStaticFileCache)((filepath, content) => { + const ignoreDir = _path().dirname(filepath); + const ignorePatterns = content.split("\n").map(line => line.replace(/#(.*?)$/, "").trim()).filter(line => !!line); + for (const pattern of ignorePatterns) { + if (pattern[0] === "!") { + throw new _configError.default(`Negation of file paths is not supported.`, filepath); + } + } + return { + filepath, + dirname: _path().dirname(filepath), + ignore: ignorePatterns.map(pattern => (0, _patternToRegex.default)(pattern, ignoreDir)) + }; +}); +function findConfigUpwards(rootDir) { + let dirname = rootDir; + for (;;) { + for (const filename of ROOT_CONFIG_FILENAMES) { + if (_fs().existsSync(_path().join(dirname, filename))) { + return dirname; + } + } + const nextDir = _path().dirname(dirname); + if (dirname === nextDir) break; + dirname = nextDir; + } + return null; +} +function* findRelativeConfig(packageData, envName, caller) { + let config = null; + let ignore = null; + const dirname = _path().dirname(packageData.filepath); + for (const loc of packageData.directories) { + if (!config) { + var _packageData$pkg; + config = yield* loadOneConfig(RELATIVE_CONFIG_FILENAMES, loc, envName, caller, ((_packageData$pkg = packageData.pkg) == null ? void 0 : _packageData$pkg.dirname) === loc ? packageToBabelConfig(packageData.pkg) : null); + } + if (!ignore) { + const ignoreLoc = _path().join(loc, BABELIGNORE_FILENAME); + ignore = yield* readIgnoreConfig(ignoreLoc); + if (ignore) { + debug("Found ignore %o from %o.", ignore.filepath, dirname); + } + } + } + return { + config, + ignore + }; +} +function findRootConfig(dirname, envName, caller) { + return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller); +} +function* loadOneConfig(names, dirname, envName, caller, previousConfig = null) { + const configs = yield* _gensync().all(names.map(filename => readConfig(_path().join(dirname, filename), envName, caller))); + const config = configs.reduce((previousConfig, config) => { + if (config && previousConfig) { + throw new _configError.default(`Multiple configuration files found. Please remove one:\n` + ` - ${_path().basename(previousConfig.filepath)}\n` + ` - ${config.filepath}\n` + `from ${dirname}`); + } + return config || previousConfig; + }, previousConfig); + if (config) { + debug("Found configuration %o from %o.", config.filepath, dirname); + } + return config; +} +function* loadConfig(name, dirname, envName, caller) { + const filepath = (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { + paths: [b] + }, M = require("module")) => { + let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); + if (f) return f; + f = new Error(`Cannot resolve module '${r}'`); + f.code = "MODULE_NOT_FOUND"; + throw f; + })(name, { + paths: [dirname] + }); + const conf = yield* readConfig(filepath, envName, caller); + if (!conf) { + throw new _configError.default(`Config file contains no configuration data`, filepath); + } + debug("Loaded config %o from %o.", name, dirname); + return conf; +} + +function readConfig(filepath, envName, caller) { + const ext = _path().extname(filepath); + return ext === ".js" || ext === ".cjs" || ext === ".mjs" ? readConfigJS(filepath, { + envName, + caller + }) : readConfigJSON5(filepath); +} +function* resolveShowConfigPath(dirname) { + const targetPath = process.env.BABEL_SHOW_CONFIG_FOR; + if (targetPath != null) { + const absolutePath = _path().resolve(dirname, targetPath); + const stats = yield* fs.stat(absolutePath); + if (!stats.isFile()) { + throw new Error(`${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`); + } + return absolutePath; + } + return null; +} +function throwConfigError(filepath) { + throw new _configError.default(`\ +Caching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured +for various types of caching, using the first param of their handler functions: + +module.exports = function(api) { + // The API exposes the following: + + // Cache the returned value forever and don't call this function again. + api.cache(true); + + // Don't cache at all. Not recommended because it will be very slow. + api.cache(false); + + // Cached based on the value of some function. If this function returns a value different from + // a previously-encountered value, the plugins will re-evaluate. + var env = api.cache(() => process.env.NODE_ENV); + + // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for + // any possible NODE_ENV value that might come up during plugin execution. + var isProd = api.cache(() => process.env.NODE_ENV === "production"); + + // .cache(fn) will perform a linear search though instances to find the matching plugin based + // based on previous instantiated plugins. If you want to recreate the plugin and discard the + // previous instance whenever something changes, you may use: + var isProd = api.cache.invalidate(() => process.env.NODE_ENV === "production"); + + // Note, we also expose the following more-verbose versions of the above examples: + api.cache.forever(); // api.cache(true) + api.cache.never(); // api.cache(false) + api.cache.using(fn); // api.cache(fn) + + // Return the value that will be cached. + return { }; +};`, filepath); +} +0 && 0; + +//# sourceMappingURL=configuration.js.map diff --git a/node_modules/@babel/core/lib/config/files/configuration.js.map b/node_modules/@babel/core/lib/config/files/configuration.js.map new file mode 100755 index 0000000..cda0af0 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/configuration.js.map @@ -0,0 +1 @@ +{"version":3,"names":["debug","buildDebug","ROOT_CONFIG_FILENAMES","RELATIVE_CONFIG_FILENAMES","BABELIGNORE_FILENAME","LOADING_CONFIGS","Set","readConfigJS","makeStrongCache","filepath","cache","nodeFs","existsSync","never","has","dirname","path","options","add","loadCjsOrMjsDefault","delete","assertCache","endHiddenCallStack","makeConfigAPI","Array","isArray","ConfigError","then","configured","throwConfigError","packageToBabelConfig","makeWeakCacheSync","file","babel","readConfigJSON5","makeStaticFileCache","content","json5","parse","err","message","readIgnoreConfig","ignoreDir","ignorePatterns","split","map","line","replace","trim","filter","pattern","ignore","pathPatternToRegex","findConfigUpwards","rootDir","filename","join","nextDir","findRelativeConfig","packageData","envName","caller","config","loc","directories","loadOneConfig","pkg","ignoreLoc","findRootConfig","names","previousConfig","configs","gensync","all","readConfig","reduce","basename","loadConfig","name","paths","conf","ext","extname","resolveShowConfigPath","targetPath","process","env","BABEL_SHOW_CONFIG_FOR","absolutePath","resolve","stats","fs","stat","isFile","Error"],"sources":["../../../src/config/files/configuration.ts"],"sourcesContent":["import buildDebug from \"debug\";\nimport nodeFs from \"fs\";\nimport path from \"path\";\nimport json5 from \"json5\";\nimport gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport { makeStrongCache, makeWeakCacheSync } from \"../caching\";\nimport type { CacheConfigurator } from \"../caching\";\nimport { makeConfigAPI } from \"../helpers/config-api\";\nimport type { ConfigAPI } from \"../helpers/config-api\";\nimport { makeStaticFileCache } from \"./utils\";\nimport loadCjsOrMjsDefault from \"./module-types\";\nimport pathPatternToRegex from \"../pattern-to-regex\";\nimport type { FilePackageData, RelativeConfig, ConfigFile } from \"./types\";\nimport type { CallerMetadata } from \"../validation/options\";\nimport ConfigError from \"../../errors/config-error\";\n\nimport * as fs from \"../../gensync-utils/fs\";\n\nimport { createRequire } from \"module\";\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace\";\nconst require = createRequire(import.meta.url);\n\nconst debug = buildDebug(\"babel:config:loading:files:configuration\");\n\nexport const ROOT_CONFIG_FILENAMES = [\n \"babel.config.js\",\n \"babel.config.cjs\",\n \"babel.config.mjs\",\n \"babel.config.json\",\n];\nconst RELATIVE_CONFIG_FILENAMES = [\n \".babelrc\",\n \".babelrc.js\",\n \".babelrc.cjs\",\n \".babelrc.mjs\",\n \".babelrc.json\",\n];\n\nconst BABELIGNORE_FILENAME = \".babelignore\";\n\nconst LOADING_CONFIGS = new Set();\n\nconst readConfigJS = makeStrongCache(function* readConfigJS(\n filepath: string,\n cache: CacheConfigurator<{\n envName: string;\n caller: CallerMetadata | undefined;\n }>,\n): Handler {\n if (!nodeFs.existsSync(filepath)) {\n cache.never();\n return null;\n }\n\n // The `require()` call below can make this code reentrant if a require hook like @babel/register has been\n // loaded into the system. That would cause Babel to attempt to compile the `.babelrc.js` file as it loads\n // below. To cover this case, we auto-ignore re-entrant config processing.\n if (LOADING_CONFIGS.has(filepath)) {\n cache.never();\n\n debug(\"Auto-ignoring usage of config %o.\", filepath);\n return {\n filepath,\n dirname: path.dirname(filepath),\n options: {},\n };\n }\n\n let options: unknown;\n try {\n LOADING_CONFIGS.add(filepath);\n options = yield* loadCjsOrMjsDefault(\n filepath,\n \"You appear to be using a native ECMAScript module configuration \" +\n \"file, which is only supported when running Babel asynchronously.\",\n );\n } finally {\n LOADING_CONFIGS.delete(filepath);\n }\n\n let assertCache = false;\n if (typeof options === \"function\") {\n // @ts-expect-error - if we want to make it possible to use async configs\n yield* [];\n\n options = endHiddenCallStack(options as any as (api: ConfigAPI) => {})(\n makeConfigAPI(cache),\n );\n\n assertCache = true;\n }\n\n if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n throw new ConfigError(\n `Configuration should be an exported JavaScript object.`,\n filepath,\n );\n }\n\n // @ts-expect-error todo(flow->ts)\n if (typeof options.then === \"function\") {\n throw new ConfigError(\n `You appear to be using an async configuration, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously return your config.`,\n filepath,\n );\n }\n\n if (assertCache && !cache.configured()) throwConfigError(filepath);\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n});\n\nconst packageToBabelConfig = makeWeakCacheSync(\n (file: ConfigFile): ConfigFile | null => {\n const babel: unknown = file.options[\"babel\"];\n\n if (typeof babel === \"undefined\") return null;\n\n if (typeof babel !== \"object\" || Array.isArray(babel) || babel === null) {\n throw new ConfigError(`.babel property must be an object`, file.filepath);\n }\n\n return {\n filepath: file.filepath,\n dirname: file.dirname,\n options: babel,\n };\n },\n);\n\nconst readConfigJSON5 = makeStaticFileCache((filepath, content): ConfigFile => {\n let options;\n try {\n options = json5.parse(content);\n } catch (err) {\n throw new ConfigError(\n `Error while parsing config - ${err.message}`,\n filepath,\n );\n }\n\n if (!options) throw new ConfigError(`No config detected`, filepath);\n\n if (typeof options !== \"object\") {\n throw new ConfigError(`Config returned typeof ${typeof options}`, filepath);\n }\n if (Array.isArray(options)) {\n throw new ConfigError(`Expected config object but found array`, filepath);\n }\n\n delete options[\"$schema\"];\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n});\n\nconst readIgnoreConfig = makeStaticFileCache((filepath, content) => {\n const ignoreDir = path.dirname(filepath);\n const ignorePatterns = content\n .split(\"\\n\")\n .map(line => line.replace(/#(.*?)$/, \"\").trim())\n .filter(line => !!line);\n\n for (const pattern of ignorePatterns) {\n if (pattern[0] === \"!\") {\n throw new ConfigError(\n `Negation of file paths is not supported.`,\n filepath,\n );\n }\n }\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n ignore: ignorePatterns.map(pattern =>\n pathPatternToRegex(pattern, ignoreDir),\n ),\n };\n});\n\nexport function findConfigUpwards(rootDir: string): string | null {\n let dirname = rootDir;\n for (;;) {\n for (const filename of ROOT_CONFIG_FILENAMES) {\n if (nodeFs.existsSync(path.join(dirname, filename))) {\n return dirname;\n }\n }\n\n const nextDir = path.dirname(dirname);\n if (dirname === nextDir) break;\n dirname = nextDir;\n }\n\n return null;\n}\n\nexport function* findRelativeConfig(\n packageData: FilePackageData,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler {\n let config = null;\n let ignore = null;\n\n const dirname = path.dirname(packageData.filepath);\n\n for (const loc of packageData.directories) {\n if (!config) {\n config = yield* loadOneConfig(\n RELATIVE_CONFIG_FILENAMES,\n loc,\n envName,\n caller,\n packageData.pkg?.dirname === loc\n ? packageToBabelConfig(packageData.pkg)\n : null,\n );\n }\n\n if (!ignore) {\n const ignoreLoc = path.join(loc, BABELIGNORE_FILENAME);\n ignore = yield* readIgnoreConfig(ignoreLoc);\n\n if (ignore) {\n debug(\"Found ignore %o from %o.\", ignore.filepath, dirname);\n }\n }\n }\n\n return { config, ignore };\n}\n\nexport function findRootConfig(\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler {\n return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller);\n}\n\nfunction* loadOneConfig(\n names: string[],\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n previousConfig: ConfigFile | null = null,\n): Handler {\n const configs = yield* gensync.all(\n names.map(filename =>\n readConfig(path.join(dirname, filename), envName, caller),\n ),\n );\n const config = configs.reduce((previousConfig: ConfigFile | null, config) => {\n if (config && previousConfig) {\n throw new ConfigError(\n `Multiple configuration files found. Please remove one:\\n` +\n ` - ${path.basename(previousConfig.filepath)}\\n` +\n ` - ${config.filepath}\\n` +\n `from ${dirname}`,\n );\n }\n\n return config || previousConfig;\n }, previousConfig);\n\n if (config) {\n debug(\"Found configuration %o from %o.\", config.filepath, dirname);\n }\n return config;\n}\n\nexport function* loadConfig(\n name: string,\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler {\n const filepath = require.resolve(name, { paths: [dirname] });\n\n const conf = yield* readConfig(filepath, envName, caller);\n if (!conf) {\n throw new ConfigError(\n `Config file contains no configuration data`,\n filepath,\n );\n }\n\n debug(\"Loaded config %o from %o.\", name, dirname);\n return conf;\n}\n\n/**\n * Read the given config file, returning the result. Returns null if no config was found, but will\n * throw if there are parsing errors while loading a config.\n */\nfunction readConfig(\n filepath: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler {\n const ext = path.extname(filepath);\n return ext === \".js\" || ext === \".cjs\" || ext === \".mjs\"\n ? readConfigJS(filepath, { envName, caller })\n : readConfigJSON5(filepath);\n}\n\nexport function* resolveShowConfigPath(\n dirname: string,\n): Handler {\n const targetPath = process.env.BABEL_SHOW_CONFIG_FOR;\n if (targetPath != null) {\n const absolutePath = path.resolve(dirname, targetPath);\n const stats = yield* fs.stat(absolutePath);\n if (!stats.isFile()) {\n throw new Error(\n `${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`,\n );\n }\n return absolutePath;\n }\n return null;\n}\n\nfunction throwConfigError(filepath: string): never {\n throw new ConfigError(\n `\\\nCaching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured\nfor various types of caching, using the first param of their handler functions:\n\nmodule.exports = function(api) {\n // The API exposes the following:\n\n // Cache the returned value forever and don't call this function again.\n api.cache(true);\n\n // Don't cache at all. Not recommended because it will be very slow.\n api.cache(false);\n\n // Cached based on the value of some function. If this function returns a value different from\n // a previously-encountered value, the plugins will re-evaluate.\n var env = api.cache(() => process.env.NODE_ENV);\n\n // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for\n // any possible NODE_ENV value that might come up during plugin execution.\n var isProd = api.cache(() => process.env.NODE_ENV === \"production\");\n\n // .cache(fn) will perform a linear search though instances to find the matching plugin based\n // based on previous instantiated plugins. If you want to recreate the plugin and discard the\n // previous instance whenever something changes, you may use:\n var isProd = api.cache.invalidate(() => process.env.NODE_ENV === \"production\");\n\n // Note, we also expose the following more-verbose versions of the above examples:\n api.cache.forever(); // api.cache(true)\n api.cache.never(); // api.cache(false)\n api.cache.using(fn); // api.cache(fn)\n\n // Return the value that will be cached.\n return { };\n};`,\n filepath,\n );\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/import-meta-resolve.js b/node_modules/@babel/core/lib/config/files/import-meta-resolve.js new file mode 100755 index 0000000..a003681 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/import-meta-resolve.js @@ -0,0 +1,35 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = resolve; +function _module() { + const data = require("module"); + _module = function () { + return data; + }; + return data; +} +var _importMetaResolve = require("../../vendor/import-meta-resolve"); +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +let import_; +try { + import_ = require("./import.cjs"); +} catch (_unused) {} + +const importMetaResolveP = import_ && +process.execArgv.includes("--experimental-import-meta-resolve") ? import_("data:text/javascript,export default import.meta.resolve").then(m => m.default || _importMetaResolve.resolve, () => _importMetaResolve.resolve) : Promise.resolve(_importMetaResolve.resolve); +function resolve(_x, _x2) { + return _resolve.apply(this, arguments); +} +function _resolve() { + _resolve = _asyncToGenerator(function* (specifier, parent) { + return (yield importMetaResolveP)(specifier, parent); + }); + return _resolve.apply(this, arguments); +} +0 && 0; + +//# sourceMappingURL=import-meta-resolve.js.map diff --git a/node_modules/@babel/core/lib/config/files/import-meta-resolve.js.map b/node_modules/@babel/core/lib/config/files/import-meta-resolve.js.map new file mode 100755 index 0000000..5f005ab --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/import-meta-resolve.js.map @@ -0,0 +1 @@ +{"version":3,"names":["import_","require","importMetaResolveP","process","execArgv","includes","then","m","default","polyfill","Promise","resolve","specifier","parent"],"sources":["../../../src/config/files/import-meta-resolve.ts"],"sourcesContent":["import { createRequire } from \"module\";\nimport { resolve as polyfill } from \"../../vendor/import-meta-resolve\";\n\nconst require = createRequire(import.meta.url);\n\nlet import_;\ntry {\n // Node < 13.3 doesn't support import() syntax.\n import_ = require(\"./import.cjs\");\n} catch {}\n\n// import.meta.resolve is only available in ESM, but this file is compiled to CJS.\n// We can extract it using dynamic import.\nconst importMetaResolveP: Promise =\n import_ &&\n // Due to a Node.js/V8 bug (https://github.com/nodejs/node/issues/35889), we cannot\n // use always dynamic import because it segfaults when running in a Node.js `vm` context,\n // which is used by the default Jest environment and by webpack-cli.\n //\n // However, import.meta.resolve is experimental and only enabled when Node.js is run\n // with the `--experimental-import-meta-resolve` flag: we can avoid calling import()\n // when that flag is not enabled, so that the default behavior never segfaults.\n //\n // Hopefully, before Node.js unflags import.meta.resolve, either:\n // - we will move to ESM, so that we have direct access to import.meta.resolve, or\n // - the V8 bug will be fixed so that we can safely use dynamic import by default.\n //\n // I (@nicolo-ribaudo) am really anoyed by this bug, because there is no known\n // work-around other than \"don't use dynamic import if you are running in a `vm` context\",\n // but there is no reliable way to detect it (you cannot try/catch segfaults).\n //\n // This is the only place where we *need* to use dynamic import because we need to access\n // an ES module. All the other places will first try using require() and *then*, if\n // it throws because it's a module, will fallback to import().\n process.execArgv.includes(\"--experimental-import-meta-resolve\")\n ? import_(\"data:text/javascript,export default import.meta.resolve\").then(\n (m: { default: ImportMeta[\"resolve\"] | undefined }) =>\n m.default || polyfill,\n () => polyfill,\n )\n : Promise.resolve(polyfill);\n\nexport default async function resolve(\n specifier: Parameters[0],\n parent?: Parameters[1],\n): ReturnType {\n return (await importMetaResolveP)(specifier, parent);\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AAAuE;AAAA;AAIvE,IAAIA,OAAO;AACX,IAAI;EAEFA,OAAO,GAAGC,OAAO,CAAC,cAAc,CAAC;AACnC,CAAC,CAAC,gBAAM,CAAC;;AAIT,MAAMC,kBAAkD,GACtDF,OAAO;AAoBPG,OAAO,CAACC,QAAQ,CAACC,QAAQ,CAAC,oCAAoC,CAAC,GAC3DL,OAAO,CAAC,yDAAyD,CAAC,CAACM,IAAI,CACpEC,CAAiD,IAChDA,CAAC,CAACC,OAAO,IAAIC,0BAAQ,EACvB,MAAMA,0BAAQ,CACf,GACDC,OAAO,CAACC,OAAO,CAACF,0BAAQ,CAAC;AAAC,SAEFE,OAAO;EAAA;AAAA;AAAA;EAAA,6BAAtB,WACbC,SAA+C,EAC/CC,MAA6C,EACV;IACnC,OAAO,OAAOX,kBAAkB,EAAEU,SAAS,EAAEC,MAAM,CAAC;EACtD,CAAC;EAAA;AAAA;AAAA"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/import.cjs b/node_modules/@babel/core/lib/config/files/import.cjs new file mode 100755 index 0000000..a298b0a --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/import.cjs @@ -0,0 +1,8 @@ + + +module.exports = function import_(filepath) { + return import(filepath); +}; +0 && 0; + +//# sourceMappingURL=import.cjs.map diff --git a/node_modules/@babel/core/lib/config/files/import.cjs.map b/node_modules/@babel/core/lib/config/files/import.cjs.map new file mode 100755 index 0000000..fcb50bd --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/import.cjs.map @@ -0,0 +1 @@ +{"version":3,"names":["module","exports","import_","filepath"],"sources":["../../../src/config/files/import.cjs"],"sourcesContent":["// We keep this in a separate file so that in older node versions, where\n// import() isn't supported, we can try/catch around the require() call\n// when loading this file.\n\nmodule.exports = function import_(filepath) {\n return import(filepath);\n};\n"],"mappings":";;AAIAA,MAAM,CAACC,OAAO,GAAG,SAASC,OAAO,CAACC,QAAQ,EAAE;EAC1C,OAAO,MAAM,CAACA,QAAQ,CAAC;AACzB,CAAC;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/index-browser.js b/node_modules/@babel/core/lib/config/files/index-browser.js new file mode 100755 index 0000000..fd5b710 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/index-browser.js @@ -0,0 +1,76 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ROOT_CONFIG_FILENAMES = void 0; +exports.findConfigUpwards = findConfigUpwards; +exports.findPackageData = findPackageData; +exports.findRelativeConfig = findRelativeConfig; +exports.findRootConfig = findRootConfig; +exports.loadConfig = loadConfig; +exports.loadPlugin = loadPlugin; +exports.loadPreset = loadPreset; +exports.resolvePlugin = resolvePlugin; +exports.resolvePreset = resolvePreset; +exports.resolveShowConfigPath = resolveShowConfigPath; +function findConfigUpwards( +rootDir) { + return null; +} + +function* findPackageData(filepath) { + return { + filepath, + directories: [], + pkg: null, + isPackage: false + }; +} + +function* findRelativeConfig( +pkgData, +envName, +caller) { + return { + config: null, + ignore: null + }; +} + +function* findRootConfig( +dirname, +envName, +caller) { + return null; +} + +function* loadConfig(name, dirname, +envName, +caller) { + throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`); +} + +function* resolveShowConfigPath( +dirname) { + return null; +} +const ROOT_CONFIG_FILENAMES = []; + +exports.ROOT_CONFIG_FILENAMES = ROOT_CONFIG_FILENAMES; +function resolvePlugin(name, dirname) { + return null; +} + +function resolvePreset(name, dirname) { + return null; +} +function loadPlugin(name, dirname) { + throw new Error(`Cannot load plugin ${name} relative to ${dirname} in a browser`); +} +function loadPreset(name, dirname) { + throw new Error(`Cannot load preset ${name} relative to ${dirname} in a browser`); +} +0 && 0; + +//# sourceMappingURL=index-browser.js.map diff --git a/node_modules/@babel/core/lib/config/files/index-browser.js.map b/node_modules/@babel/core/lib/config/files/index-browser.js.map new file mode 100755 index 0000000..bd7e213 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/index-browser.js.map @@ -0,0 +1 @@ +{"version":3,"names":["findConfigUpwards","rootDir","findPackageData","filepath","directories","pkg","isPackage","findRelativeConfig","pkgData","envName","caller","config","ignore","findRootConfig","dirname","loadConfig","name","Error","resolveShowConfigPath","ROOT_CONFIG_FILENAMES","resolvePlugin","resolvePreset","loadPlugin","loadPreset"],"sources":["../../../src/config/files/index-browser.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport type {\n ConfigFile,\n IgnoreFile,\n RelativeConfig,\n FilePackageData,\n} from \"./types\";\n\nimport type { CallerMetadata } from \"../validation/options\";\n\nexport type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData };\n\nexport function findConfigUpwards(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n rootDir: string,\n): string | null {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* findPackageData(filepath: string): Handler {\n return {\n filepath,\n directories: [],\n pkg: null,\n isPackage: false,\n };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRelativeConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n pkgData: FilePackageData,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler {\n return { config: null, ignore: null };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRootConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* loadConfig(\n name: string,\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler {\n throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);\n}\n\n// eslint-disable-next-line require-yield\nexport function* resolveShowConfigPath(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n): Handler {\n return null;\n}\n\nexport const ROOT_CONFIG_FILENAMES: string[] = [];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePlugin(name: string, dirname: string): string | null {\n return null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePreset(name: string, dirname: string): string | null {\n return null;\n}\n\nexport function loadPlugin(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load plugin ${name} relative to ${dirname} in a browser`,\n );\n}\n\nexport function loadPreset(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load preset ${name} relative to ${dirname} in a browser`,\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAaO,SAASA,iBAAiB;AAE/BC,OAAe,EACA;EACf,OAAO,IAAI;AACb;;AAGO,UAAUC,eAAe,CAACC,QAAgB,EAA4B;EAC3E,OAAO;IACLA,QAAQ;IACRC,WAAW,EAAE,EAAE;IACfC,GAAG,EAAE,IAAI;IACTC,SAAS,EAAE;EACb,CAAC;AACH;;AAGO,UAAUC,kBAAkB;AAEjCC,OAAwB;AAExBC,OAAe;AAEfC,MAAkC,EACT;EACzB,OAAO;IAAEC,MAAM,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAK,CAAC;AACvC;;AAGO,UAAUC,cAAc;AAE7BC,OAAe;AAEfL,OAAe;AAEfC,MAAkC,EACN;EAC5B,OAAO,IAAI;AACb;;AAGO,UAAUK,UAAU,CACzBC,IAAY,EACZF,OAAe;AAEfL,OAAe;AAEfC,MAAkC,EACb;EACrB,MAAM,IAAIO,KAAK,CAAE,eAAcD,IAAK,gBAAeF,OAAQ,eAAc,CAAC;AAC5E;;AAGO,UAAUI,qBAAqB;AAEpCJ,OAAe,EACS;EACxB,OAAO,IAAI;AACb;AAEO,MAAMK,qBAA+B,GAAG,EAAE;;AAAC;AAG3C,SAASC,aAAa,CAACJ,IAAY,EAAEF,OAAe,EAAiB;EAC1E,OAAO,IAAI;AACb;;AAGO,SAASO,aAAa,CAACL,IAAY,EAAEF,OAAe,EAAiB;EAC1E,OAAO,IAAI;AACb;AAEO,SAASQ,UAAU,CACxBN,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACZ,sBAAqBD,IAAK,gBAAeF,OAAQ,eAAc,CACjE;AACH;AAEO,SAASS,UAAU,CACxBP,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACZ,sBAAqBD,IAAK,gBAAeF,OAAQ,eAAc,CACjE;AACH;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/index.js b/node_modules/@babel/core/lib/config/files/index.js new file mode 100755 index 0000000..f93e6b2 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/index.js @@ -0,0 +1,78 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ROOT_CONFIG_FILENAMES", { + enumerable: true, + get: function () { + return _configuration.ROOT_CONFIG_FILENAMES; + } +}); +Object.defineProperty(exports, "findConfigUpwards", { + enumerable: true, + get: function () { + return _configuration.findConfigUpwards; + } +}); +Object.defineProperty(exports, "findPackageData", { + enumerable: true, + get: function () { + return _package.findPackageData; + } +}); +Object.defineProperty(exports, "findRelativeConfig", { + enumerable: true, + get: function () { + return _configuration.findRelativeConfig; + } +}); +Object.defineProperty(exports, "findRootConfig", { + enumerable: true, + get: function () { + return _configuration.findRootConfig; + } +}); +Object.defineProperty(exports, "loadConfig", { + enumerable: true, + get: function () { + return _configuration.loadConfig; + } +}); +Object.defineProperty(exports, "loadPlugin", { + enumerable: true, + get: function () { + return plugins.loadPlugin; + } +}); +Object.defineProperty(exports, "loadPreset", { + enumerable: true, + get: function () { + return plugins.loadPreset; + } +}); +exports.resolvePreset = exports.resolvePlugin = void 0; +Object.defineProperty(exports, "resolveShowConfigPath", { + enumerable: true, + get: function () { + return _configuration.resolveShowConfigPath; + } +}); +var _package = require("./package"); +var _configuration = require("./configuration"); +var plugins = require("./plugins"); +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +({}); +const resolvePlugin = _gensync()(plugins.resolvePlugin).sync; +exports.resolvePlugin = resolvePlugin; +const resolvePreset = _gensync()(plugins.resolvePreset).sync; +exports.resolvePreset = resolvePreset; +0 && 0; + +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/core/lib/config/files/index.js.map b/node_modules/@babel/core/lib/config/files/index.js.map new file mode 100755 index 0000000..1add0a6 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["resolvePlugin","gensync","plugins","sync","resolvePreset"],"sources":["../../../src/config/files/index.ts"],"sourcesContent":["type indexBrowserType = typeof import(\"./index-browser\");\ntype indexType = typeof import(\"./index\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of index-browser, since this file may be replaced at bundle time with index-browser.\n({} as any as indexBrowserType as indexType);\n\nexport { findPackageData } from \"./package\";\n\nexport {\n findConfigUpwards,\n findRelativeConfig,\n findRootConfig,\n loadConfig,\n resolveShowConfigPath,\n ROOT_CONFIG_FILENAMES,\n} from \"./configuration\";\nexport type {\n ConfigFile,\n IgnoreFile,\n RelativeConfig,\n FilePackageData,\n} from \"./types\";\nexport { loadPlugin, loadPreset } from \"./plugins\";\n\nimport gensync from \"gensync\";\nimport * as plugins from \"./plugins\";\n\nexport const resolvePlugin = gensync(plugins.resolvePlugin).sync;\nexport const resolvePreset = gensync(plugins.resolvePreset).sync;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;AAEA;AAcA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AApBA,CAAC,CAAC,CAAC;AAuBI,MAAMA,aAAa,GAAGC,UAAO,CAACC,OAAO,CAACF,aAAa,CAAC,CAACG,IAAI;AAAC;AAC1D,MAAMC,aAAa,GAAGH,UAAO,CAACC,OAAO,CAACE,aAAa,CAAC,CAACD,IAAI;AAAC;AAAA"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/module-types.js b/node_modules/@babel/core/lib/config/files/module-types.js new file mode 100755 index 0000000..eefe3ea --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/module-types.js @@ -0,0 +1,97 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = loadCjsOrMjsDefault; +exports.supportsESM = void 0; +var _async = require("../../gensync-utils/async"); +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _url() { + const data = require("url"); + _url = function () { + return data; + }; + return data; +} +function _module() { + const data = require("module"); + _module = function () { + return data; + }; + return data; +} +function _semver() { + const data = require("semver"); + _semver = function () { + return data; + }; + return data; +} +var _rewriteStackTrace = require("../../errors/rewrite-stack-trace"); +var _configError = require("../../errors/config-error"); +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +let import_; +try { + import_ = require("./import.cjs"); +} catch (_unused) {} +const supportsESM = _semver().satisfies(process.versions.node, +"^12.17 || >=13.2"); +exports.supportsESM = supportsESM; +function* loadCjsOrMjsDefault(filepath, asyncError, +fallbackToTranspiledModule = false) { + switch (guessJSModuleType(filepath)) { + case "cjs": + return loadCjsDefault(filepath, fallbackToTranspiledModule); + case "unknown": + try { + return loadCjsDefault(filepath, fallbackToTranspiledModule); + } catch (e) { + if (e.code !== "ERR_REQUIRE_ESM") throw e; + } + case "mjs": + if (yield* (0, _async.isAsync)()) { + return yield* (0, _async.waitFor)(loadMjsDefault(filepath)); + } + throw new _configError.default(asyncError, filepath); + } +} +function guessJSModuleType(filename) { + switch (_path().extname(filename)) { + case ".cjs": + return "cjs"; + case ".mjs": + return "mjs"; + default: + return "unknown"; + } +} +function loadCjsDefault(filepath, fallbackToTranspiledModule) { + const module = (0, _rewriteStackTrace.endHiddenCallStack)(require)(filepath); + return module != null && module.__esModule ? + module.default || (fallbackToTranspiledModule ? module : undefined) : module; +} +function loadMjsDefault(_x) { + return _loadMjsDefault.apply(this, arguments); +} +function _loadMjsDefault() { + _loadMjsDefault = _asyncToGenerator(function* (filepath) { + if (!import_) { + throw new _configError.default("Internal error: Native ECMAScript modules aren't supported" + " by this platform.\n", filepath); + } + + const module = yield (0, _rewriteStackTrace.endHiddenCallStack)(import_)((0, _url().pathToFileURL)(filepath)); + return module.default; + }); + return _loadMjsDefault.apply(this, arguments); +} +0 && 0; + +//# sourceMappingURL=module-types.js.map diff --git a/node_modules/@babel/core/lib/config/files/module-types.js.map b/node_modules/@babel/core/lib/config/files/module-types.js.map new file mode 100755 index 0000000..b515869 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/module-types.js.map @@ -0,0 +1 @@ +{"version":3,"names":["import_","require","supportsESM","semver","satisfies","process","versions","node","loadCjsOrMjsDefault","filepath","asyncError","fallbackToTranspiledModule","guessJSModuleType","loadCjsDefault","e","code","isAsync","waitFor","loadMjsDefault","ConfigError","filename","path","extname","module","endHiddenCallStack","__esModule","default","undefined","pathToFileURL"],"sources":["../../../src/config/files/module-types.ts"],"sourcesContent":["import { isAsync, waitFor } from \"../../gensync-utils/async\";\nimport type { Handler } from \"gensync\";\nimport path from \"path\";\nimport { pathToFileURL } from \"url\";\nimport { createRequire } from \"module\";\nimport semver from \"semver\";\n\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace\";\nimport ConfigError from \"../../errors/config-error\";\n\nconst require = createRequire(import.meta.url);\n\nlet import_: ((specifier: string | URL) => any) | undefined;\ntry {\n // Old Node.js versions don't support import() syntax.\n import_ = require(\"./import.cjs\");\n} catch {}\n\nexport const supportsESM = semver.satisfies(\n process.versions.node,\n // older versions, starting from 10, support the dynamic\n // import syntax but always return a rejected promise.\n \"^12.17 || >=13.2\",\n);\n\nexport default function* loadCjsOrMjsDefault(\n filepath: string,\n asyncError: string,\n // TODO(Babel 8): Remove this\n fallbackToTranspiledModule: boolean = false,\n): Handler {\n switch (guessJSModuleType(filepath)) {\n case \"cjs\":\n return loadCjsDefault(filepath, fallbackToTranspiledModule);\n case \"unknown\":\n try {\n return loadCjsDefault(filepath, fallbackToTranspiledModule);\n } catch (e) {\n if (e.code !== \"ERR_REQUIRE_ESM\") throw e;\n }\n // fall through\n case \"mjs\":\n if (yield* isAsync()) {\n return yield* waitFor(loadMjsDefault(filepath));\n }\n throw new ConfigError(asyncError, filepath);\n }\n}\n\nfunction guessJSModuleType(filename: string): \"cjs\" | \"mjs\" | \"unknown\" {\n switch (path.extname(filename)) {\n case \".cjs\":\n return \"cjs\";\n case \".mjs\":\n return \"mjs\";\n default:\n return \"unknown\";\n }\n}\n\nfunction loadCjsDefault(filepath: string, fallbackToTranspiledModule: boolean) {\n const module = endHiddenCallStack(require)(filepath);\n return module?.__esModule\n ? // TODO (Babel 8): Remove \"module\" and \"undefined\" fallback\n module.default || (fallbackToTranspiledModule ? module : undefined)\n : module;\n}\n\nasync function loadMjsDefault(filepath: string) {\n if (!import_) {\n throw new ConfigError(\n \"Internal error: Native ECMAScript modules aren't supported\" +\n \" by this platform.\\n\",\n filepath,\n );\n }\n\n // import() expects URLs, not file paths.\n // https://github.com/nodejs/node/issues/31710\n const module = await endHiddenCallStack(import_)(pathToFileURL(filepath));\n return module.default;\n}\n"],"mappings":";;;;;;;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;AACA;AAAoD;AAAA;AAIpD,IAAIA,OAAuD;AAC3D,IAAI;EAEFA,OAAO,GAAGC,OAAO,CAAC,cAAc,CAAC;AACnC,CAAC,CAAC,gBAAM,CAAC;AAEF,MAAMC,WAAW,GAAGC,SAAM,CAACC,SAAS,CACzCC,OAAO,CAACC,QAAQ,CAACC,IAAI;AAGrB,kBAAkB,CACnB;AAAC;AAEa,UAAUC,mBAAmB,CAC1CC,QAAgB,EAChBC,UAAkB;AAElBC,0BAAmC,GAAG,KAAK,EACzB;EAClB,QAAQC,iBAAiB,CAACH,QAAQ,CAAC;IACjC,KAAK,KAAK;MACR,OAAOI,cAAc,CAACJ,QAAQ,EAAEE,0BAA0B,CAAC;IAC7D,KAAK,SAAS;MACZ,IAAI;QACF,OAAOE,cAAc,CAACJ,QAAQ,EAAEE,0BAA0B,CAAC;MAC7D,CAAC,CAAC,OAAOG,CAAC,EAAE;QACV,IAAIA,CAAC,CAACC,IAAI,KAAK,iBAAiB,EAAE,MAAMD,CAAC;MAC3C;IAEF,KAAK,KAAK;MACR,IAAI,OAAO,IAAAE,cAAO,GAAE,EAAE;QACpB,OAAO,OAAO,IAAAC,cAAO,EAACC,cAAc,CAACT,QAAQ,CAAC,CAAC;MACjD;MACA,MAAM,IAAIU,oBAAW,CAACT,UAAU,EAAED,QAAQ,CAAC;EAAC;AAElD;AAEA,SAASG,iBAAiB,CAACQ,QAAgB,EAA6B;EACtE,QAAQC,OAAI,CAACC,OAAO,CAACF,QAAQ,CAAC;IAC5B,KAAK,MAAM;MACT,OAAO,KAAK;IACd,KAAK,MAAM;MACT,OAAO,KAAK;IACd;MACE,OAAO,SAAS;EAAC;AAEvB;AAEA,SAASP,cAAc,CAACJ,QAAgB,EAAEE,0BAAmC,EAAE;EAC7E,MAAMY,MAAM,GAAG,IAAAC,qCAAkB,EAACvB,OAAO,CAAC,CAACQ,QAAQ,CAAC;EACpD,OAAOc,MAAM,YAANA,MAAM,CAAEE,UAAU;EAErBF,MAAM,CAACG,OAAO,KAAKf,0BAA0B,GAAGY,MAAM,GAAGI,SAAS,CAAC,GACnEJ,MAAM;AACZ;AAAC,SAEcL,cAAc;EAAA;AAAA;AAAA;EAAA,oCAA7B,WAA8BT,QAAgB,EAAE;IAC9C,IAAI,CAACT,OAAO,EAAE;MACZ,MAAM,IAAImB,oBAAW,CACnB,4DAA4D,GAC1D,sBAAsB,EACxBV,QAAQ,CACT;IACH;;IAIA,MAAMc,MAAM,SAAS,IAAAC,qCAAkB,EAACxB,OAAO,CAAC,CAAC,IAAA4B,oBAAa,EAACnB,QAAQ,CAAC,CAAC;IACzE,OAAOc,MAAM,CAACG,OAAO;EACvB,CAAC;EAAA;AAAA;AAAA"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/package.js b/node_modules/@babel/core/lib/config/files/package.js new file mode 100755 index 0000000..b30c907 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/package.js @@ -0,0 +1,62 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.findPackageData = findPackageData; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +var _utils = require("./utils"); +var _configError = require("../../errors/config-error"); +const PACKAGE_FILENAME = "package.json"; +const readConfigPackage = (0, _utils.makeStaticFileCache)((filepath, content) => { + let options; + try { + options = JSON.parse(content); + } catch (err) { + throw new _configError.default(`Error while parsing JSON - ${err.message}`, filepath); + } + if (!options) throw new Error(`${filepath}: No config detected`); + if (typeof options !== "object") { + throw new _configError.default(`Config returned typeof ${typeof options}`, filepath); + } + if (Array.isArray(options)) { + throw new _configError.default(`Expected config object but found array`, filepath); + } + return { + filepath, + dirname: _path().dirname(filepath), + options + }; +}); + +function* findPackageData(filepath) { + let pkg = null; + const directories = []; + let isPackage = true; + let dirname = _path().dirname(filepath); + while (!pkg && _path().basename(dirname) !== "node_modules") { + directories.push(dirname); + pkg = yield* readConfigPackage(_path().join(dirname, PACKAGE_FILENAME)); + const nextLoc = _path().dirname(dirname); + if (dirname === nextLoc) { + isPackage = false; + break; + } + dirname = nextLoc; + } + return { + filepath, + directories, + pkg, + isPackage + }; +} +0 && 0; + +//# sourceMappingURL=package.js.map diff --git a/node_modules/@babel/core/lib/config/files/package.js.map b/node_modules/@babel/core/lib/config/files/package.js.map new file mode 100755 index 0000000..773da3e --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/package.js.map @@ -0,0 +1 @@ +{"version":3,"names":["PACKAGE_FILENAME","readConfigPackage","makeStaticFileCache","filepath","content","options","JSON","parse","err","ConfigError","message","Error","Array","isArray","dirname","path","findPackageData","pkg","directories","isPackage","basename","push","join","nextLoc"],"sources":["../../../src/config/files/package.ts"],"sourcesContent":["import path from \"path\";\nimport type { Handler } from \"gensync\";\nimport { makeStaticFileCache } from \"./utils\";\n\nimport type { ConfigFile, FilePackageData } from \"./types\";\n\nimport ConfigError from \"../../errors/config-error\";\n\nconst PACKAGE_FILENAME = \"package.json\";\n\nconst readConfigPackage = makeStaticFileCache(\n (filepath, content): ConfigFile => {\n let options;\n try {\n options = JSON.parse(content) as unknown;\n } catch (err) {\n throw new ConfigError(\n `Error while parsing JSON - ${err.message}`,\n filepath,\n );\n }\n\n if (!options) throw new Error(`${filepath}: No config detected`);\n\n if (typeof options !== \"object\") {\n throw new ConfigError(\n `Config returned typeof ${typeof options}`,\n filepath,\n );\n }\n if (Array.isArray(options)) {\n throw new ConfigError(`Expected config object but found array`, filepath);\n }\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n },\n);\n\n/**\n * Find metadata about the package that this file is inside of. Resolution\n * of Babel's config requires general package information to decide when to\n * search for .babelrc files\n */\nexport function* findPackageData(filepath: string): Handler {\n let pkg = null;\n const directories = [];\n let isPackage = true;\n\n let dirname = path.dirname(filepath);\n while (!pkg && path.basename(dirname) !== \"node_modules\") {\n directories.push(dirname);\n\n pkg = yield* readConfigPackage(path.join(dirname, PACKAGE_FILENAME));\n\n const nextLoc = path.dirname(dirname);\n if (dirname === nextLoc) {\n isPackage = false;\n break;\n }\n dirname = nextLoc;\n }\n\n return { filepath, directories, pkg, isPackage };\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;AAIA;AAEA,MAAMA,gBAAgB,GAAG,cAAc;AAEvC,MAAMC,iBAAiB,GAAG,IAAAC,0BAAmB,EAC3C,CAACC,QAAQ,EAAEC,OAAO,KAAiB;EACjC,IAAIC,OAAO;EACX,IAAI;IACFA,OAAO,GAAGC,IAAI,CAACC,KAAK,CAACH,OAAO,CAAY;EAC1C,CAAC,CAAC,OAAOI,GAAG,EAAE;IACZ,MAAM,IAAIC,oBAAW,CAClB,8BAA6BD,GAAG,CAACE,OAAQ,EAAC,EAC3CP,QAAQ,CACT;EACH;EAEA,IAAI,CAACE,OAAO,EAAE,MAAM,IAAIM,KAAK,CAAE,GAAER,QAAS,sBAAqB,CAAC;EAEhE,IAAI,OAAOE,OAAO,KAAK,QAAQ,EAAE;IAC/B,MAAM,IAAII,oBAAW,CAClB,0BAAyB,OAAOJ,OAAQ,EAAC,EAC1CF,QAAQ,CACT;EACH;EACA,IAAIS,KAAK,CAACC,OAAO,CAACR,OAAO,CAAC,EAAE;IAC1B,MAAM,IAAII,oBAAW,CAAE,wCAAuC,EAAEN,QAAQ,CAAC;EAC3E;EAEA,OAAO;IACLA,QAAQ;IACRW,OAAO,EAAEC,OAAI,CAACD,OAAO,CAACX,QAAQ,CAAC;IAC/BE;EACF,CAAC;AACH,CAAC,CACF;;AAOM,UAAUW,eAAe,CAACb,QAAgB,EAA4B;EAC3E,IAAIc,GAAG,GAAG,IAAI;EACd,MAAMC,WAAW,GAAG,EAAE;EACtB,IAAIC,SAAS,GAAG,IAAI;EAEpB,IAAIL,OAAO,GAAGC,OAAI,CAACD,OAAO,CAACX,QAAQ,CAAC;EACpC,OAAO,CAACc,GAAG,IAAIF,OAAI,CAACK,QAAQ,CAACN,OAAO,CAAC,KAAK,cAAc,EAAE;IACxDI,WAAW,CAACG,IAAI,CAACP,OAAO,CAAC;IAEzBG,GAAG,GAAG,OAAOhB,iBAAiB,CAACc,OAAI,CAACO,IAAI,CAACR,OAAO,EAAEd,gBAAgB,CAAC,CAAC;IAEpE,MAAMuB,OAAO,GAAGR,OAAI,CAACD,OAAO,CAACA,OAAO,CAAC;IACrC,IAAIA,OAAO,KAAKS,OAAO,EAAE;MACvBJ,SAAS,GAAG,KAAK;MACjB;IACF;IACAL,OAAO,GAAGS,OAAO;EACnB;EAEA,OAAO;IAAEpB,QAAQ;IAAEe,WAAW;IAAED,GAAG;IAAEE;EAAU,CAAC;AAClD;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/plugins.js b/node_modules/@babel/core/lib/config/files/plugins.js new file mode 100755 index 0000000..4c98e49 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/plugins.js @@ -0,0 +1,232 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.loadPlugin = loadPlugin; +exports.loadPreset = loadPreset; +exports.resolvePlugin = resolvePlugin; +exports.resolvePreset = resolvePreset; +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _async = require("../../gensync-utils/async"); +var _moduleTypes = require("./module-types"); +function _url() { + const data = require("url"); + _url = function () { + return data; + }; + return data; +} +var _importMetaResolve = require("./import-meta-resolve"); +function _module() { + const data = require("module"); + _module = function () { + return data; + }; + return data; +} +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +const debug = _debug()("babel:config:loading:files:plugins"); +const EXACT_RE = /^module:/; +const BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-plugin-)/; +const BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-preset-)/; +const BABEL_PLUGIN_ORG_RE = /^(@babel\/)(?!plugin-|[^/]+\/)/; +const BABEL_PRESET_ORG_RE = /^(@babel\/)(?!preset-|[^/]+\/)/; +const OTHER_PLUGIN_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-plugin(?:-|\/|$)|[^/]+\/)/; +const OTHER_PRESET_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-preset(?:-|\/|$)|[^/]+\/)/; +const OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/; +function* resolvePlugin(name, dirname) { + return yield* resolveStandardizedName("plugin", name, dirname); +} +function* resolvePreset(name, dirname) { + return yield* resolveStandardizedName("preset", name, dirname); +} +function* loadPlugin(name, dirname) { + const filepath = yield* resolvePlugin(name, dirname); + const value = yield* requireModule("plugin", filepath); + debug("Loaded plugin %o from %o.", name, dirname); + return { + filepath, + value + }; +} +function* loadPreset(name, dirname) { + const filepath = yield* resolvePreset(name, dirname); + const value = yield* requireModule("preset", filepath); + debug("Loaded preset %o from %o.", name, dirname); + return { + filepath, + value + }; +} +function standardizeName(type, name) { + if (_path().isAbsolute(name)) return name; + const isPreset = type === "preset"; + return name + .replace(isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE, `babel-${type}-`) + .replace(isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE, `$1${type}-`) + .replace(isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE, `$1babel-${type}-`) + .replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`) + .replace(EXACT_RE, ""); +} +function* resolveAlternativesHelper(type, name) { + const standardizedName = standardizeName(type, name); + const { + error, + value + } = yield standardizedName; + if (!error) return value; + + if (error.code !== "MODULE_NOT_FOUND") throw error; + if (standardizedName !== name && !(yield name).error) { + error.message += `\n- If you want to resolve "${name}", use "module:${name}"`; + } + if (!(yield standardizeName(type, "@babel/" + name)).error) { + error.message += `\n- Did you mean "@babel/${name}"?`; + } + const oppositeType = type === "preset" ? "plugin" : "preset"; + if (!(yield standardizeName(oppositeType, name)).error) { + error.message += `\n- Did you accidentally pass a ${oppositeType} as a ${type}?`; + } + throw error; +} +function tryRequireResolve(id, { + paths: [dirname] +}) { + try { + return { + error: null, + value: (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { + paths: [b] + }, M = require("module")) => { + let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); + if (f) return f; + f = new Error(`Cannot resolve module '${r}'`); + f.code = "MODULE_NOT_FOUND"; + throw f; + })(id, { + paths: [dirname] + }) + }; + } catch (error) { + return { + error, + value: null + }; + } +} +function tryImportMetaResolve(_x, _x2) { + return _tryImportMetaResolve.apply(this, arguments); +} +function _tryImportMetaResolve() { + _tryImportMetaResolve = _asyncToGenerator(function* (id, options) { + try { + return { + error: null, + value: yield (0, _importMetaResolve.default)(id, options) + }; + } catch (error) { + return { + error, + value: null + }; + } + }); + return _tryImportMetaResolve.apply(this, arguments); +} +function resolveStandardizedNameForRequire(type, name, dirname) { + const it = resolveAlternativesHelper(type, name); + let res = it.next(); + while (!res.done) { + res = it.next(tryRequireResolve(res.value, { + paths: [dirname] + })); + } + return res.value; +} +function resolveStandardizedNameForImport(_x3, _x4, _x5) { + return _resolveStandardizedNameForImport.apply(this, arguments); +} +function _resolveStandardizedNameForImport() { + _resolveStandardizedNameForImport = _asyncToGenerator(function* (type, name, dirname) { + const parentUrl = (0, _url().pathToFileURL)(_path().join(dirname, "./babel-virtual-resolve-base.js")).href; + const it = resolveAlternativesHelper(type, name); + let res = it.next(); + while (!res.done) { + res = it.next(yield tryImportMetaResolve(res.value, parentUrl)); + } + return (0, _url().fileURLToPath)(res.value); + }); + return _resolveStandardizedNameForImport.apply(this, arguments); +} +const resolveStandardizedName = _gensync()({ + sync(type, name, dirname = process.cwd()) { + return resolveStandardizedNameForRequire(type, name, dirname); + }, + async(type, name, dirname = process.cwd()) { + return _asyncToGenerator(function* () { + if (!_moduleTypes.supportsESM) { + return resolveStandardizedNameForRequire(type, name, dirname); + } + try { + return yield resolveStandardizedNameForImport(type, name, dirname); + } catch (e) { + try { + return resolveStandardizedNameForRequire(type, name, dirname); + } catch (e2) { + if (e.type === "MODULE_NOT_FOUND") throw e; + if (e2.type === "MODULE_NOT_FOUND") throw e2; + throw e; + } + } + })(); + } +}); +{ + var LOADING_MODULES = new Set(); +} +function* requireModule(type, name) { + { + if (!(yield* (0, _async.isAsync)()) && LOADING_MODULES.has(name)) { + throw new Error(`Reentrant ${type} detected trying to load "${name}". This module is not ignored ` + "and is trying to load itself while compiling itself, leading to a dependency cycle. " + 'We recommend adding it to your "ignore" list in your babelrc, or to a .babelignore.'); + } + } + try { + { + LOADING_MODULES.add(name); + } + return yield* (0, _moduleTypes.default)(name, `You appear to be using a native ECMAScript module ${type}, ` + "which is only supported when running Babel asynchronously.", + true); + } catch (err) { + err.message = `[BABEL]: ${err.message} (While processing: ${name})`; + throw err; + } finally { + { + LOADING_MODULES.delete(name); + } + } +} +0 && 0; + +//# sourceMappingURL=plugins.js.map diff --git a/node_modules/@babel/core/lib/config/files/plugins.js.map b/node_modules/@babel/core/lib/config/files/plugins.js.map new file mode 100755 index 0000000..eb6c19b --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/plugins.js.map @@ -0,0 +1 @@ +{"version":3,"names":["debug","buildDebug","EXACT_RE","BABEL_PLUGIN_PREFIX_RE","BABEL_PRESET_PREFIX_RE","BABEL_PLUGIN_ORG_RE","BABEL_PRESET_ORG_RE","OTHER_PLUGIN_ORG_RE","OTHER_PRESET_ORG_RE","OTHER_ORG_DEFAULT_RE","resolvePlugin","name","dirname","resolveStandardizedName","resolvePreset","loadPlugin","filepath","value","requireModule","loadPreset","standardizeName","type","path","isAbsolute","isPreset","replace","resolveAlternativesHelper","standardizedName","error","code","message","oppositeType","tryRequireResolve","id","paths","tryImportMetaResolve","options","importMetaResolve","resolveStandardizedNameForRequire","it","res","next","done","resolveStandardizedNameForImport","parentUrl","pathToFileURL","join","href","fileURLToPath","gensync","sync","process","cwd","async","supportsESM","e","e2","LOADING_MODULES","Set","isAsync","has","Error","add","loadCjsOrMjsDefault","err","delete"],"sources":["../../../src/config/files/plugins.ts"],"sourcesContent":["/**\n * This file handles all logic for converting string-based configuration references into loaded objects.\n */\n\nimport buildDebug from \"debug\";\nimport path from \"path\";\nimport gensync, { type Handler } from \"gensync\";\nimport { isAsync } from \"../../gensync-utils/async\";\nimport loadCjsOrMjsDefault, { supportsESM } from \"./module-types\";\nimport { fileURLToPath, pathToFileURL } from \"url\";\n\nimport importMetaResolve from \"./import-meta-resolve\";\n\nimport { createRequire } from \"module\";\nconst require = createRequire(import.meta.url);\n\nconst debug = buildDebug(\"babel:config:loading:files:plugins\");\n\nconst EXACT_RE = /^module:/;\nconst BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-plugin-)/;\nconst BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-preset-)/;\nconst BABEL_PLUGIN_ORG_RE = /^(@babel\\/)(?!plugin-|[^/]+\\/)/;\nconst BABEL_PRESET_ORG_RE = /^(@babel\\/)(?!preset-|[^/]+\\/)/;\nconst OTHER_PLUGIN_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-plugin(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_PRESET_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-preset(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/;\n\nexport function* resolvePlugin(name: string, dirname: string): Handler {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return yield* resolveStandardizedName(\"plugin\", name, dirname);\n}\n\nexport function* resolvePreset(name: string, dirname: string): Handler {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return yield* resolveStandardizedName(\"preset\", name, dirname);\n}\n\nexport function* loadPlugin(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const filepath = yield* resolvePlugin(name, dirname);\n\n const value = yield* requireModule(\"plugin\", filepath);\n debug(\"Loaded plugin %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nexport function* loadPreset(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const filepath = yield* resolvePreset(name, dirname);\n\n const value = yield* requireModule(\"preset\", filepath);\n\n debug(\"Loaded preset %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nfunction standardizeName(type: \"plugin\" | \"preset\", name: string) {\n // Let absolute and relative paths through.\n if (path.isAbsolute(name)) return name;\n\n const isPreset = type === \"preset\";\n\n return (\n name\n // foo -> babel-preset-foo\n .replace(\n isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE,\n `babel-${type}-`,\n )\n // @babel/es2015 -> @babel/preset-es2015\n .replace(\n isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE,\n `$1${type}-`,\n )\n // @foo/mypreset -> @foo/babel-preset-mypreset\n .replace(\n isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE,\n `$1babel-${type}-`,\n )\n // @foo -> @foo/babel-preset\n .replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`)\n // module:mypreset -> mypreset\n .replace(EXACT_RE, \"\")\n );\n}\n\ntype Result = { error: Error; value: null } | { error: null; value: T };\n\nfunction* resolveAlternativesHelper(\n type: \"plugin\" | \"preset\",\n name: string,\n): Iterator> {\n const standardizedName = standardizeName(type, name);\n const { error, value } = yield standardizedName;\n if (!error) return value;\n\n // @ts-expect-error code may not index error\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n if (standardizedName !== name && !(yield name).error) {\n error.message += `\\n- If you want to resolve \"${name}\", use \"module:${name}\"`;\n }\n\n if (!(yield standardizeName(type, \"@babel/\" + name)).error) {\n error.message += `\\n- Did you mean \"@babel/${name}\"?`;\n }\n\n const oppositeType = type === \"preset\" ? \"plugin\" : \"preset\";\n if (!(yield standardizeName(oppositeType, name)).error) {\n error.message += `\\n- Did you accidentally pass a ${oppositeType} as a ${type}?`;\n }\n\n throw error;\n}\n\nfunction tryRequireResolve(\n id: Parameters[0],\n { paths: [dirname] }: Parameters[1],\n): Result {\n try {\n return { error: null, value: require.resolve(id, { paths: [dirname] }) };\n } catch (error) {\n return { error, value: null };\n }\n}\n\nasync function tryImportMetaResolve(\n id: Parameters[0],\n options: Parameters[1],\n): Promise> {\n try {\n return { error: null, value: await importMetaResolve(id, options) };\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction resolveStandardizedNameForRequire(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryRequireResolve(res.value, { paths: [dirname] }));\n }\n return res.value;\n}\nasync function resolveStandardizedNameForImport(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const parentUrl = pathToFileURL(\n path.join(dirname, \"./babel-virtual-resolve-base.js\"),\n ).href;\n\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(await tryImportMetaResolve(res.value, parentUrl));\n }\n return fileURLToPath(res.value);\n}\n\nconst resolveStandardizedName = gensync<\n [type: \"plugin\" | \"preset\", name: string, dirname?: string],\n string\n>({\n sync(type, name, dirname = process.cwd()) {\n return resolveStandardizedNameForRequire(type, name, dirname);\n },\n async async(type, name, dirname = process.cwd()) {\n if (!supportsESM) {\n return resolveStandardizedNameForRequire(type, name, dirname);\n }\n\n try {\n return await resolveStandardizedNameForImport(type, name, dirname);\n } catch (e) {\n try {\n return resolveStandardizedNameForRequire(type, name, dirname);\n } catch (e2) {\n if (e.type === \"MODULE_NOT_FOUND\") throw e;\n if (e2.type === \"MODULE_NOT_FOUND\") throw e2;\n throw e;\n }\n }\n },\n});\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var LOADING_MODULES = new Set();\n}\nfunction* requireModule(type: string, name: string): Handler {\n if (!process.env.BABEL_8_BREAKING) {\n if (!(yield* isAsync()) && LOADING_MODULES.has(name)) {\n throw new Error(\n `Reentrant ${type} detected trying to load \"${name}\". This module is not ignored ` +\n \"and is trying to load itself while compiling itself, leading to a dependency cycle. \" +\n 'We recommend adding it to your \"ignore\" list in your babelrc, or to a .babelignore.',\n );\n }\n }\n\n try {\n if (!process.env.BABEL_8_BREAKING) {\n LOADING_MODULES.add(name);\n }\n return yield* loadCjsOrMjsDefault(\n name,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously.\",\n // For backward compatibility, we need to support malformed presets\n // defined as separate named exports rather than a single default\n // export.\n // See packages/babel-core/test/fixtures/option-manager/presets/es2015_named.js\n true,\n );\n } catch (err) {\n err.message = `[BABEL]: ${err.message} (While processing: ${name})`;\n throw err;\n } finally {\n if (!process.env.BABEL_8_BREAKING) {\n LOADING_MODULES.delete(name);\n }\n }\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/types.js b/node_modules/@babel/core/lib/config/files/types.js new file mode 100755 index 0000000..c03b5a6 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/types.js @@ -0,0 +1,3 @@ +0 && 0; + +//# sourceMappingURL=types.js.map diff --git a/node_modules/@babel/core/lib/config/files/types.js.map b/node_modules/@babel/core/lib/config/files/types.js.map new file mode 100755 index 0000000..107e58c --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/types.js.map @@ -0,0 +1 @@ +{"version":3,"names":[],"sources":["../../../src/config/files/types.ts"],"sourcesContent":["import type { InputOptions } from \"..\";\n\nexport type ConfigFile = {\n filepath: string;\n dirname: string;\n options: InputOptions & { babel?: unknown };\n};\n\nexport type IgnoreFile = {\n filepath: string;\n dirname: string;\n ignore: Array;\n};\n\nexport type RelativeConfig = {\n // The actual config, either from package.json#babel, .babelrc, or\n // .babelrc.js, if there was one.\n config: ConfigFile | null;\n // The .babelignore, if there was one.\n ignore: IgnoreFile | null;\n};\n\nexport type FilePackageData = {\n // The file in the package.\n filepath: string;\n // Any ancestor directories of the file that are within the package.\n directories: Array;\n // The contents of the package.json. May not be found if the package just\n // terminated at a node_modules folder without finding one.\n pkg: ConfigFile | null;\n // True if a package.json or node_modules folder was found while traversing\n // the directory structure.\n isPackage: boolean;\n};\n"],"mappings":""} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/utils.js b/node_modules/@babel/core/lib/config/files/utils.js new file mode 100755 index 0000000..1c4ccbf --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/utils.js @@ -0,0 +1,36 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.makeStaticFileCache = makeStaticFileCache; +var _caching = require("../caching"); +var fs = require("../../gensync-utils/fs"); +function _fs2() { + const data = require("fs"); + _fs2 = function () { + return data; + }; + return data; +} +function makeStaticFileCache(fn) { + return (0, _caching.makeStrongCache)(function* (filepath, cache) { + const cached = cache.invalidate(() => fileMtime(filepath)); + if (cached === null) { + return null; + } + return fn(filepath, yield* fs.readFile(filepath, "utf8")); + }); +} +function fileMtime(filepath) { + if (!_fs2().existsSync(filepath)) return null; + try { + return +_fs2().statSync(filepath).mtime; + } catch (e) { + if (e.code !== "ENOENT" && e.code !== "ENOTDIR") throw e; + } + return null; +} +0 && 0; + +//# sourceMappingURL=utils.js.map diff --git a/node_modules/@babel/core/lib/config/files/utils.js.map b/node_modules/@babel/core/lib/config/files/utils.js.map new file mode 100755 index 0000000..03629e1 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/utils.js.map @@ -0,0 +1 @@ +{"version":3,"names":["makeStaticFileCache","fn","makeStrongCache","filepath","cache","cached","invalidate","fileMtime","fs","readFile","nodeFs","existsSync","statSync","mtime","e","code"],"sources":["../../../src/config/files/utils.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport { makeStrongCache } from \"../caching\";\nimport type { CacheConfigurator } from \"../caching\";\nimport * as fs from \"../../gensync-utils/fs\";\nimport nodeFs from \"fs\";\n\nexport function makeStaticFileCache(\n fn: (filepath: string, contents: string) => T,\n) {\n return makeStrongCache(function* (\n filepath: string,\n cache: CacheConfigurator,\n ): Handler {\n const cached = cache.invalidate(() => fileMtime(filepath));\n\n if (cached === null) {\n return null;\n }\n\n return fn(filepath, yield* fs.readFile(filepath, \"utf8\"));\n });\n}\n\nfunction fileMtime(filepath: string): number | null {\n if (!nodeFs.existsSync(filepath)) return null;\n\n try {\n return +nodeFs.statSync(filepath).mtime;\n } catch (e) {\n if (e.code !== \"ENOENT\" && e.code !== \"ENOTDIR\") throw e;\n }\n\n return null;\n}\n"],"mappings":";;;;;;AAEA;AAEA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,SAASA,mBAAmB,CACjCC,EAA6C,EAC7C;EACA,OAAO,IAAAC,wBAAe,EAAC,WACrBC,QAAgB,EAChBC,KAA8B,EACX;IACnB,MAAMC,MAAM,GAAGD,KAAK,CAACE,UAAU,CAAC,MAAMC,SAAS,CAACJ,QAAQ,CAAC,CAAC;IAE1D,IAAIE,MAAM,KAAK,IAAI,EAAE;MACnB,OAAO,IAAI;IACb;IAEA,OAAOJ,EAAE,CAACE,QAAQ,EAAE,OAAOK,EAAE,CAACC,QAAQ,CAACN,QAAQ,EAAE,MAAM,CAAC,CAAC;EAC3D,CAAC,CAAC;AACJ;AAEA,SAASI,SAAS,CAACJ,QAAgB,EAAiB;EAClD,IAAI,CAACO,MAAM,CAACC,UAAU,CAACR,QAAQ,CAAC,EAAE,OAAO,IAAI;EAE7C,IAAI;IACF,OAAO,CAACO,MAAM,CAACE,QAAQ,CAACT,QAAQ,CAAC,CAACU,KAAK;EACzC,CAAC,CAAC,OAAOC,CAAC,EAAE;IACV,IAAIA,CAAC,CAACC,IAAI,KAAK,QAAQ,IAAID,CAAC,CAACC,IAAI,KAAK,SAAS,EAAE,MAAMD,CAAC;EAC1D;EAEA,OAAO,IAAI;AACb;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/full.js b/node_modules/@babel/core/lib/config/full.js new file mode 100755 index 0000000..172992f --- /dev/null +++ b/node_modules/@babel/core/lib/config/full.js @@ -0,0 +1,317 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _async = require("../gensync-utils/async"); +var _util = require("./util"); +var context = require("../index"); +var _plugin = require("./plugin"); +var _item = require("./item"); +var _configChain = require("./config-chain"); +var _deepArray = require("./helpers/deep-array"); +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +var _caching = require("./caching"); +var _options = require("./validation/options"); +var _plugins = require("./validation/plugins"); +var _configApi = require("./helpers/config-api"); +var _partial = require("./partial"); +var _configError = require("../errors/config-error"); +var _default = _gensync()(function* loadFullConfig(inputOpts) { + var _opts$assumptions; + const result = yield* (0, _partial.default)(inputOpts); + if (!result) { + return null; + } + const { + options, + context, + fileHandling + } = result; + if (fileHandling === "ignored") { + return null; + } + const optionDefaults = {}; + const { + plugins, + presets + } = options; + if (!plugins || !presets) { + throw new Error("Assertion failure - plugins and presets exist"); + } + const presetContext = Object.assign({}, context, { + targets: options.targets + }); + const toDescriptor = item => { + const desc = (0, _item.getItemDescriptor)(item); + if (!desc) { + throw new Error("Assertion failure - must be config item"); + } + return desc; + }; + const presetsDescriptors = presets.map(toDescriptor); + const initialPluginsDescriptors = plugins.map(toDescriptor); + const pluginDescriptorsByPass = [[]]; + const passes = []; + const externalDependencies = []; + const ignored = yield* enhanceError(context, function* recursePresetDescriptors(rawPresets, pluginDescriptorsPass) { + const presets = []; + for (let i = 0; i < rawPresets.length; i++) { + const descriptor = rawPresets[i]; + if (descriptor.options !== false) { + try { + var preset = yield* loadPresetDescriptor(descriptor, presetContext); + } catch (e) { + if (e.code === "BABEL_UNKNOWN_OPTION") { + (0, _options.checkNoUnwrappedItemOptionPairs)(rawPresets, i, "preset", e); + } + throw e; + } + externalDependencies.push(preset.externalDependencies); + + if (descriptor.ownPass) { + presets.push({ + preset: preset.chain, + pass: [] + }); + } else { + presets.unshift({ + preset: preset.chain, + pass: pluginDescriptorsPass + }); + } + } + } + + if (presets.length > 0) { + pluginDescriptorsByPass.splice(1, 0, ...presets.map(o => o.pass).filter(p => p !== pluginDescriptorsPass)); + for (const { + preset, + pass + } of presets) { + if (!preset) return true; + pass.push(...preset.plugins); + const ignored = yield* recursePresetDescriptors(preset.presets, pass); + if (ignored) return true; + preset.options.forEach(opts => { + (0, _util.mergeOptions)(optionDefaults, opts); + }); + } + } + })(presetsDescriptors, pluginDescriptorsByPass[0]); + if (ignored) return null; + const opts = optionDefaults; + (0, _util.mergeOptions)(opts, options); + const pluginContext = Object.assign({}, presetContext, { + assumptions: (_opts$assumptions = opts.assumptions) != null ? _opts$assumptions : {} + }); + yield* enhanceError(context, function* loadPluginDescriptors() { + pluginDescriptorsByPass[0].unshift(...initialPluginsDescriptors); + for (const descs of pluginDescriptorsByPass) { + const pass = []; + passes.push(pass); + for (let i = 0; i < descs.length; i++) { + const descriptor = descs[i]; + if (descriptor.options !== false) { + try { + var plugin = yield* loadPluginDescriptor(descriptor, pluginContext); + } catch (e) { + if (e.code === "BABEL_UNKNOWN_PLUGIN_PROPERTY") { + (0, _options.checkNoUnwrappedItemOptionPairs)(descs, i, "plugin", e); + } + throw e; + } + pass.push(plugin); + externalDependencies.push(plugin.externalDependencies); + } + } + } + })(); + opts.plugins = passes[0]; + opts.presets = passes.slice(1).filter(plugins => plugins.length > 0).map(plugins => ({ + plugins + })); + opts.passPerPreset = opts.presets.length > 0; + return { + options: opts, + passes: passes, + externalDependencies: (0, _deepArray.finalize)(externalDependencies) + }; +}); +exports.default = _default; +function enhanceError(context, fn) { + return function* (arg1, arg2) { + try { + return yield* fn(arg1, arg2); + } catch (e) { + if (!/^\[BABEL\]/.test(e.message)) { + var _context$filename; + e.message = `[BABEL] ${(_context$filename = context.filename) != null ? _context$filename : "unknown file"}: ${e.message}`; + } + throw e; + } + }; +} + +const makeDescriptorLoader = apiFactory => (0, _caching.makeWeakCache)(function* ({ + value, + options, + dirname, + alias +}, cache) { + if (options === false) throw new Error("Assertion failure"); + options = options || {}; + const externalDependencies = []; + let item = value; + if (typeof value === "function") { + const factory = (0, _async.maybeAsync)(value, `You appear to be using an async plugin/preset, but Babel has been called synchronously`); + const api = Object.assign({}, context, apiFactory(cache, externalDependencies)); + try { + item = yield* factory(api, options, dirname); + } catch (e) { + if (alias) { + e.message += ` (While processing: ${JSON.stringify(alias)})`; + } + throw e; + } + } + if (!item || typeof item !== "object") { + throw new Error("Plugin/Preset did not return an object."); + } + if ((0, _async.isThenable)(item)) { + yield* []; + throw new Error(`You appear to be using a promise as a plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version. ` + `As an alternative, you can prefix the promise with "await". ` + `(While processing: ${JSON.stringify(alias)})`); + } + if (externalDependencies.length > 0 && (!cache.configured() || cache.mode() === "forever")) { + let error = `A plugin/preset has external untracked dependencies ` + `(${externalDependencies[0]}), but the cache `; + if (!cache.configured()) { + error += `has not been configured to be invalidated when the external dependencies change. `; + } else { + error += ` has been configured to never be invalidated. `; + } + error += `Plugins/presets should configure their cache to be invalidated when the external ` + `dependencies change, for example using \`api.cache.invalidate(() => ` + `statSync(filepath).mtimeMs)\` or \`api.cache.never()\`\n` + `(While processing: ${JSON.stringify(alias)})`; + throw new Error(error); + } + return { + value: item, + options, + dirname, + alias, + externalDependencies: (0, _deepArray.finalize)(externalDependencies) + }; +}); +const pluginDescriptorLoader = makeDescriptorLoader(_configApi.makePluginAPI); +const presetDescriptorLoader = makeDescriptorLoader(_configApi.makePresetAPI); +const instantiatePlugin = (0, _caching.makeWeakCache)(function* ({ + value, + options, + dirname, + alias, + externalDependencies +}, cache) { + const pluginObj = (0, _plugins.validatePluginObject)(value); + const plugin = Object.assign({}, pluginObj); + if (plugin.visitor) { + plugin.visitor = _traverse().default.explode(Object.assign({}, plugin.visitor)); + } + if (plugin.inherits) { + const inheritsDescriptor = { + name: undefined, + alias: `${alias}$inherits`, + value: plugin.inherits, + options, + dirname + }; + const inherits = yield* (0, _async.forwardAsync)(loadPluginDescriptor, run => { + return cache.invalidate(data => run(inheritsDescriptor, data)); + }); + plugin.pre = chain(inherits.pre, plugin.pre); + plugin.post = chain(inherits.post, plugin.post); + plugin.manipulateOptions = chain(inherits.manipulateOptions, plugin.manipulateOptions); + plugin.visitor = _traverse().default.visitors.merge([inherits.visitor || {}, plugin.visitor || {}]); + if (inherits.externalDependencies.length > 0) { + if (externalDependencies.length === 0) { + externalDependencies = inherits.externalDependencies; + } else { + externalDependencies = (0, _deepArray.finalize)([externalDependencies, inherits.externalDependencies]); + } + } + } + return new _plugin.default(plugin, options, alias, externalDependencies); +}); + +function* loadPluginDescriptor(descriptor, context) { + if (descriptor.value instanceof _plugin.default) { + if (descriptor.options) { + throw new Error("Passed options to an existing Plugin instance will not work."); + } + return descriptor.value; + } + return yield* instantiatePlugin(yield* pluginDescriptorLoader(descriptor, context), context); +} +const needsFilename = val => val && typeof val !== "function"; +const validateIfOptionNeedsFilename = (options, descriptor) => { + if (needsFilename(options.test) || needsFilename(options.include) || needsFilename(options.exclude)) { + const formattedPresetName = descriptor.name ? `"${descriptor.name}"` : "/* your preset */"; + throw new _configError.default([`Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`, `\`\`\``, `babel.transformSync(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`, `\`\`\``, `See https://babeljs.io/docs/en/options#filename for more information.`].join("\n")); + } +}; +const validatePreset = (preset, context, descriptor) => { + if (!context.filename) { + const { + options + } = preset; + validateIfOptionNeedsFilename(options, descriptor); + if (options.overrides) { + options.overrides.forEach(overrideOptions => validateIfOptionNeedsFilename(overrideOptions, descriptor)); + } + } +}; +const instantiatePreset = (0, _caching.makeWeakCacheSync)(({ + value, + dirname, + alias, + externalDependencies +}) => { + return { + options: (0, _options.validate)("preset", value), + alias, + dirname, + externalDependencies + }; +}); + +function* loadPresetDescriptor(descriptor, context) { + const preset = instantiatePreset(yield* presetDescriptorLoader(descriptor, context)); + validatePreset(preset, context, descriptor); + return { + chain: yield* (0, _configChain.buildPresetChain)(preset, context), + externalDependencies: preset.externalDependencies + }; +} +function chain(a, b) { + const fns = [a, b].filter(Boolean); + if (fns.length <= 1) return fns[0]; + return function (...args) { + for (const fn of fns) { + fn.apply(this, args); + } + }; +} +0 && 0; + +//# sourceMappingURL=full.js.map diff --git a/node_modules/@babel/core/lib/config/full.js.map b/node_modules/@babel/core/lib/config/full.js.map new file mode 100755 index 0000000..b51016d --- /dev/null +++ b/node_modules/@babel/core/lib/config/full.js.map @@ -0,0 +1 @@ +{"version":3,"names":["gensync","loadFullConfig","inputOpts","result","loadPrivatePartialConfig","options","context","fileHandling","optionDefaults","plugins","presets","Error","presetContext","targets","toDescriptor","item","desc","getItemDescriptor","presetsDescriptors","map","initialPluginsDescriptors","pluginDescriptorsByPass","passes","externalDependencies","ignored","enhanceError","recursePresetDescriptors","rawPresets","pluginDescriptorsPass","i","length","descriptor","preset","loadPresetDescriptor","e","code","checkNoUnwrappedItemOptionPairs","push","ownPass","chain","pass","unshift","splice","o","filter","p","forEach","opts","mergeOptions","pluginContext","assumptions","loadPluginDescriptors","descs","plugin","loadPluginDescriptor","slice","passPerPreset","freezeDeepArray","fn","arg1","arg2","test","message","filename","makeDescriptorLoader","apiFactory","makeWeakCache","value","dirname","alias","cache","factory","maybeAsync","api","JSON","stringify","isThenable","configured","mode","error","pluginDescriptorLoader","makePluginAPI","presetDescriptorLoader","makePresetAPI","instantiatePlugin","pluginObj","validatePluginObject","visitor","traverse","explode","inherits","inheritsDescriptor","name","undefined","forwardAsync","run","invalidate","data","pre","post","manipulateOptions","visitors","merge","Plugin","needsFilename","val","validateIfOptionNeedsFilename","include","exclude","formattedPresetName","ConfigError","join","validatePreset","overrides","overrideOptions","instantiatePreset","makeWeakCacheSync","validate","buildPresetChain","a","b","fns","Boolean","args","apply"],"sources":["../../src/config/full.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\nimport { forwardAsync, maybeAsync, isThenable } from \"../gensync-utils/async\";\n\nimport { mergeOptions } from \"./util\";\nimport * as context from \"../index\";\nimport Plugin from \"./plugin\";\nimport { getItemDescriptor } from \"./item\";\nimport { buildPresetChain } from \"./config-chain\";\nimport { finalize as freezeDeepArray } from \"./helpers/deep-array\";\nimport type { DeepArray, ReadonlyDeepArray } from \"./helpers/deep-array\";\nimport type {\n ConfigContext,\n ConfigChain,\n PresetInstance,\n} from \"./config-chain\";\nimport type { UnloadedDescriptor } from \"./config-descriptors\";\nimport traverse from \"@babel/traverse\";\nimport { makeWeakCache, makeWeakCacheSync } from \"./caching\";\nimport type { CacheConfigurator } from \"./caching\";\nimport {\n validate,\n checkNoUnwrappedItemOptionPairs,\n} from \"./validation/options\";\nimport type { PluginItem } from \"./validation/options\";\nimport { validatePluginObject } from \"./validation/plugins\";\nimport { makePluginAPI, makePresetAPI } from \"./helpers/config-api\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api\";\n\nimport loadPrivatePartialConfig from \"./partial\";\nimport type { ValidatedOptions } from \"./validation/options\";\n\nimport type * as Context from \"./cache-contexts\";\nimport ConfigError from \"../errors/config-error\";\n\ntype LoadedDescriptor = {\n value: {};\n options: {};\n dirname: string;\n alias: string;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type { InputOptions } from \"./validation/options\";\n\nexport type ResolvedConfig = {\n options: any;\n passes: PluginPasses;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type { Plugin };\nexport type PluginPassList = Array;\nexport type PluginPasses = Array;\n\nexport default gensync(function* loadFullConfig(\n inputOpts: unknown,\n): Handler {\n const result = yield* loadPrivatePartialConfig(inputOpts);\n if (!result) {\n return null;\n }\n const { options, context, fileHandling } = result;\n\n if (fileHandling === \"ignored\") {\n return null;\n }\n\n const optionDefaults = {};\n\n const { plugins, presets } = options;\n\n if (!plugins || !presets) {\n throw new Error(\"Assertion failure - plugins and presets exist\");\n }\n\n const presetContext: Context.FullPreset = {\n ...context,\n targets: options.targets,\n };\n\n const toDescriptor = (item: PluginItem) => {\n const desc = getItemDescriptor(item);\n if (!desc) {\n throw new Error(\"Assertion failure - must be config item\");\n }\n\n return desc;\n };\n\n const presetsDescriptors = presets.map(toDescriptor);\n const initialPluginsDescriptors = plugins.map(toDescriptor);\n const pluginDescriptorsByPass: Array> = [[]];\n const passes: Array> = [];\n\n const externalDependencies: DeepArray = [];\n\n const ignored = yield* enhanceError(\n context,\n function* recursePresetDescriptors(\n rawPresets: Array,\n pluginDescriptorsPass: Array,\n ): Handler {\n const presets: Array<{\n preset: ConfigChain | null;\n pass: Array;\n }> = [];\n\n for (let i = 0; i < rawPresets.length; i++) {\n const descriptor = rawPresets[i];\n if (descriptor.options !== false) {\n try {\n // eslint-disable-next-line no-var\n var preset = yield* loadPresetDescriptor(descriptor, presetContext);\n } catch (e) {\n if (e.code === \"BABEL_UNKNOWN_OPTION\") {\n checkNoUnwrappedItemOptionPairs(rawPresets, i, \"preset\", e);\n }\n throw e;\n }\n\n externalDependencies.push(preset.externalDependencies);\n\n // Presets normally run in reverse order, but if they\n // have their own pass they run after the presets\n // in the previous pass.\n if (descriptor.ownPass) {\n presets.push({ preset: preset.chain, pass: [] });\n } else {\n presets.unshift({\n preset: preset.chain,\n pass: pluginDescriptorsPass,\n });\n }\n }\n }\n\n // resolve presets\n if (presets.length > 0) {\n // The passes are created in the same order as the preset list, but are inserted before any\n // existing additional passes.\n pluginDescriptorsByPass.splice(\n 1,\n 0,\n ...presets.map(o => o.pass).filter(p => p !== pluginDescriptorsPass),\n );\n\n for (const { preset, pass } of presets) {\n if (!preset) return true;\n\n pass.push(...preset.plugins);\n\n const ignored = yield* recursePresetDescriptors(preset.presets, pass);\n if (ignored) return true;\n\n preset.options.forEach(opts => {\n mergeOptions(optionDefaults, opts);\n });\n }\n }\n },\n )(presetsDescriptors, pluginDescriptorsByPass[0]);\n\n if (ignored) return null;\n\n const opts: any = optionDefaults;\n mergeOptions(opts, options);\n\n const pluginContext: Context.FullPlugin = {\n ...presetContext,\n assumptions: opts.assumptions ?? {},\n };\n\n yield* enhanceError(context, function* loadPluginDescriptors() {\n pluginDescriptorsByPass[0].unshift(...initialPluginsDescriptors);\n\n for (const descs of pluginDescriptorsByPass) {\n const pass: Plugin[] = [];\n passes.push(pass);\n\n for (let i = 0; i < descs.length; i++) {\n const descriptor: UnloadedDescriptor = descs[i];\n if (descriptor.options !== false) {\n try {\n // eslint-disable-next-line no-var\n var plugin = yield* loadPluginDescriptor(descriptor, pluginContext);\n } catch (e) {\n if (e.code === \"BABEL_UNKNOWN_PLUGIN_PROPERTY\") {\n // print special message for `plugins: [\"@babel/foo\", { foo: \"option\" }]`\n checkNoUnwrappedItemOptionPairs(descs, i, \"plugin\", e);\n }\n throw e;\n }\n pass.push(plugin);\n\n externalDependencies.push(plugin.externalDependencies);\n }\n }\n }\n })();\n\n opts.plugins = passes[0];\n opts.presets = passes\n .slice(1)\n .filter(plugins => plugins.length > 0)\n .map(plugins => ({ plugins }));\n opts.passPerPreset = opts.presets.length > 0;\n\n return {\n options: opts,\n passes: passes,\n externalDependencies: freezeDeepArray(externalDependencies),\n };\n});\n\nfunction enhanceError(context: ConfigContext, fn: T): T {\n return function* (arg1: unknown, arg2: unknown) {\n try {\n return yield* fn(arg1, arg2);\n } catch (e) {\n // There are a few case where thrown errors will try to annotate themselves multiple times, so\n // to keep things simple we just bail out if re-wrapping the message.\n if (!/^\\[BABEL\\]/.test(e.message)) {\n e.message = `[BABEL] ${context.filename ?? \"unknown file\"}: ${\n e.message\n }`;\n }\n\n throw e;\n }\n } as any;\n}\n\n/**\n * Load a generic plugin/preset from the given descriptor loaded from the config object.\n */\nconst makeDescriptorLoader = (\n apiFactory: (\n cache: CacheConfigurator,\n externalDependencies: Array,\n ) => API,\n) =>\n makeWeakCache(function* (\n { value, options, dirname, alias }: UnloadedDescriptor,\n cache: CacheConfigurator,\n ): Handler {\n // Disabled presets should already have been filtered out\n if (options === false) throw new Error(\"Assertion failure\");\n\n options = options || {};\n\n const externalDependencies: Array = [];\n\n let item = value;\n if (typeof value === \"function\") {\n const factory = maybeAsync(\n value,\n `You appear to be using an async plugin/preset, but Babel has been called synchronously`,\n );\n\n const api = {\n ...context,\n ...apiFactory(cache, externalDependencies),\n };\n try {\n item = yield* factory(api, options, dirname);\n } catch (e) {\n if (alias) {\n e.message += ` (While processing: ${JSON.stringify(alias)})`;\n }\n throw e;\n }\n }\n\n if (!item || typeof item !== \"object\") {\n throw new Error(\"Plugin/Preset did not return an object.\");\n }\n\n if (isThenable(item)) {\n // @ts-expect-error - if we want to support async plugins\n yield* [];\n\n throw new Error(\n `You appear to be using a promise as a plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, ` +\n `you may need to upgrade your @babel/core version. ` +\n `As an alternative, you can prefix the promise with \"await\". ` +\n `(While processing: ${JSON.stringify(alias)})`,\n );\n }\n\n if (\n externalDependencies.length > 0 &&\n (!cache.configured() || cache.mode() === \"forever\")\n ) {\n let error =\n `A plugin/preset has external untracked dependencies ` +\n `(${externalDependencies[0]}), but the cache `;\n if (!cache.configured()) {\n error += `has not been configured to be invalidated when the external dependencies change. `;\n } else {\n error += ` has been configured to never be invalidated. `;\n }\n error +=\n `Plugins/presets should configure their cache to be invalidated when the external ` +\n `dependencies change, for example using \\`api.cache.invalidate(() => ` +\n `statSync(filepath).mtimeMs)\\` or \\`api.cache.never()\\`\\n` +\n `(While processing: ${JSON.stringify(alias)})`;\n\n throw new Error(error);\n }\n\n return {\n value: item,\n options,\n dirname,\n alias,\n externalDependencies: freezeDeepArray(externalDependencies),\n };\n });\n\nconst pluginDescriptorLoader = makeDescriptorLoader<\n Context.SimplePlugin,\n PluginAPI\n>(makePluginAPI);\nconst presetDescriptorLoader = makeDescriptorLoader<\n Context.SimplePreset,\n PresetAPI\n>(makePresetAPI);\n\nconst instantiatePlugin = makeWeakCache(function* (\n { value, options, dirname, alias, externalDependencies }: LoadedDescriptor,\n cache: CacheConfigurator,\n): Handler {\n const pluginObj = validatePluginObject(value);\n\n const plugin = {\n ...pluginObj,\n };\n if (plugin.visitor) {\n plugin.visitor = traverse.explode({\n ...plugin.visitor,\n });\n }\n\n if (plugin.inherits) {\n const inheritsDescriptor: UnloadedDescriptor = {\n name: undefined,\n alias: `${alias}$inherits`,\n value: plugin.inherits,\n options,\n dirname,\n };\n\n const inherits = yield* forwardAsync(loadPluginDescriptor, run => {\n // If the inherited plugin changes, reinstantiate this plugin.\n return cache.invalidate(data => run(inheritsDescriptor, data));\n });\n\n plugin.pre = chain(inherits.pre, plugin.pre);\n plugin.post = chain(inherits.post, plugin.post);\n plugin.manipulateOptions = chain(\n inherits.manipulateOptions,\n plugin.manipulateOptions,\n );\n plugin.visitor = traverse.visitors.merge([\n inherits.visitor || {},\n plugin.visitor || {},\n ]);\n\n if (inherits.externalDependencies.length > 0) {\n if (externalDependencies.length === 0) {\n externalDependencies = inherits.externalDependencies;\n } else {\n externalDependencies = freezeDeepArray([\n externalDependencies,\n inherits.externalDependencies,\n ]);\n }\n }\n }\n\n return new Plugin(plugin, options, alias, externalDependencies);\n});\n\n/**\n * Instantiate a plugin for the given descriptor, returning the plugin/options pair.\n */\nfunction* loadPluginDescriptor(\n descriptor: UnloadedDescriptor,\n context: Context.SimplePlugin,\n): Handler {\n if (descriptor.value instanceof Plugin) {\n if (descriptor.options) {\n throw new Error(\n \"Passed options to an existing Plugin instance will not work.\",\n );\n }\n\n return descriptor.value;\n }\n\n return yield* instantiatePlugin(\n yield* pluginDescriptorLoader(descriptor, context),\n context,\n );\n}\n\nconst needsFilename = (val: unknown) => val && typeof val !== \"function\";\n\nconst validateIfOptionNeedsFilename = (\n options: ValidatedOptions,\n descriptor: UnloadedDescriptor,\n): void => {\n if (\n needsFilename(options.test) ||\n needsFilename(options.include) ||\n needsFilename(options.exclude)\n ) {\n const formattedPresetName = descriptor.name\n ? `\"${descriptor.name}\"`\n : \"/* your preset */\";\n throw new ConfigError(\n [\n `Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`,\n `\\`\\`\\``,\n `babel.transformSync(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`,\n `\\`\\`\\``,\n `See https://babeljs.io/docs/en/options#filename for more information.`,\n ].join(\"\\n\"),\n );\n }\n};\n\nconst validatePreset = (\n preset: PresetInstance,\n context: ConfigContext,\n descriptor: UnloadedDescriptor,\n): void => {\n if (!context.filename) {\n const { options } = preset;\n validateIfOptionNeedsFilename(options, descriptor);\n if (options.overrides) {\n options.overrides.forEach(overrideOptions =>\n validateIfOptionNeedsFilename(overrideOptions, descriptor),\n );\n }\n }\n};\n\nconst instantiatePreset = makeWeakCacheSync(\n ({\n value,\n dirname,\n alias,\n externalDependencies,\n }: LoadedDescriptor): PresetInstance => {\n return {\n options: validate(\"preset\", value),\n alias,\n dirname,\n externalDependencies,\n };\n },\n);\n\n/**\n * Generate a config object that will act as the root of a new nested config.\n */\nfunction* loadPresetDescriptor(\n descriptor: UnloadedDescriptor,\n context: Context.FullPreset,\n): Handler<{\n chain: ConfigChain | null;\n externalDependencies: ReadonlyDeepArray;\n}> {\n const preset = instantiatePreset(\n yield* presetDescriptorLoader(descriptor, context),\n );\n validatePreset(preset, context, descriptor);\n return {\n chain: yield* buildPresetChain(preset, context),\n externalDependencies: preset.externalDependencies,\n };\n}\n\nfunction chain(\n a: undefined | ((...args: Args) => void),\n b: undefined | ((...args: Args) => void),\n) {\n const fns = [a, b].filter(Boolean);\n if (fns.length <= 1) return fns[0];\n\n return function (this: unknown, ...args: unknown[]) {\n for (const fn of fns) {\n fn.apply(this, args);\n }\n };\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/helpers/config-api.js b/node_modules/@babel/core/lib/config/helpers/config-api.js new file mode 100755 index 0000000..1ca9677 --- /dev/null +++ b/node_modules/@babel/core/lib/config/helpers/config-api.js @@ -0,0 +1,85 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.makeConfigAPI = makeConfigAPI; +exports.makePluginAPI = makePluginAPI; +exports.makePresetAPI = makePresetAPI; +function _semver() { + const data = require("semver"); + _semver = function () { + return data; + }; + return data; +} +var _ = require("../../"); +var _caching = require("../caching"); +function makeConfigAPI(cache) { + const env = value => cache.using(data => { + if (typeof value === "undefined") return data.envName; + if (typeof value === "function") { + return (0, _caching.assertSimpleType)(value(data.envName)); + } + return (Array.isArray(value) ? value : [value]).some(entry => { + if (typeof entry !== "string") { + throw new Error("Unexpected non-string value"); + } + return entry === data.envName; + }); + }); + const caller = cb => cache.using(data => (0, _caching.assertSimpleType)(cb(data.caller))); + return { + version: _.version, + cache: cache.simple(), + env, + async: () => false, + caller, + assertVersion + }; +} +function makePresetAPI(cache, externalDependencies) { + const targets = () => + JSON.parse(cache.using(data => JSON.stringify(data.targets))); + const addExternalDependency = ref => { + externalDependencies.push(ref); + }; + return Object.assign({}, makeConfigAPI(cache), { + targets, + addExternalDependency + }); +} +function makePluginAPI(cache, externalDependencies) { + const assumption = name => cache.using(data => data.assumptions[name]); + return Object.assign({}, makePresetAPI(cache, externalDependencies), { + assumption + }); +} +function assertVersion(range) { + if (typeof range === "number") { + if (!Number.isInteger(range)) { + throw new Error("Expected string or integer value."); + } + range = `^${range}.0.0-0`; + } + if (typeof range !== "string") { + throw new Error("Expected string or integer value."); + } + if (_semver().satisfies(_.version, range)) return; + const limit = Error.stackTraceLimit; + if (typeof limit === "number" && limit < 25) { + Error.stackTraceLimit = 25; + } + const err = new Error(`Requires Babel "${range}", but was loaded with "${_.version}". ` + `If you are sure you have a compatible version of @babel/core, ` + `it is likely that something in your build process is loading the ` + `wrong version. Inspect the stack trace of this error to look for ` + `the first entry that doesn't mention "@babel/core" or "babel-core" ` + `to see what is calling Babel.`); + if (typeof limit === "number") { + Error.stackTraceLimit = limit; + } + throw Object.assign(err, { + code: "BABEL_VERSION_UNSUPPORTED", + version: _.version, + range + }); +} +0 && 0; + +//# sourceMappingURL=config-api.js.map diff --git a/node_modules/@babel/core/lib/config/helpers/config-api.js.map b/node_modules/@babel/core/lib/config/helpers/config-api.js.map new file mode 100755 index 0000000..9698d1f --- /dev/null +++ b/node_modules/@babel/core/lib/config/helpers/config-api.js.map @@ -0,0 +1 @@ +{"version":3,"names":["makeConfigAPI","cache","env","value","using","data","envName","assertSimpleType","Array","isArray","some","entry","Error","caller","cb","version","coreVersion","simple","async","assertVersion","makePresetAPI","externalDependencies","targets","JSON","parse","stringify","addExternalDependency","ref","push","makePluginAPI","assumption","name","assumptions","range","Number","isInteger","semver","satisfies","limit","stackTraceLimit","err","Object","assign","code"],"sources":["../../../src/config/helpers/config-api.ts"],"sourcesContent":["import semver from \"semver\";\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nimport { version as coreVersion } from \"../../\";\nimport { assertSimpleType } from \"../caching\";\nimport type {\n CacheConfigurator,\n SimpleCacheConfigurator,\n SimpleType,\n} from \"../caching\";\n\nimport type { AssumptionName, CallerMetadata } from \"../validation/options\";\n\nimport type * as Context from \"../cache-contexts\";\n\ntype EnvFunction = {\n (): string;\n (extractor: (babelEnv: string) => T): T;\n (envVar: string): boolean;\n (envVars: Array): boolean;\n};\n\ntype CallerFactory = (\n extractor: (callerMetadata: CallerMetadata | undefined) => unknown,\n) => SimpleType;\ntype TargetsFunction = () => Targets;\ntype AssumptionFunction = (name: AssumptionName) => boolean | undefined;\n\nexport type ConfigAPI = {\n version: string;\n cache: SimpleCacheConfigurator;\n env: EnvFunction;\n async: () => boolean;\n assertVersion: typeof assertVersion;\n caller?: CallerFactory;\n};\n\nexport type PresetAPI = {\n targets: TargetsFunction;\n addExternalDependency: (ref: string) => void;\n} & ConfigAPI;\n\nexport type PluginAPI = {\n assumption: AssumptionFunction;\n} & PresetAPI;\n\nexport function makeConfigAPI(\n cache: CacheConfigurator,\n): ConfigAPI {\n // TODO(@nicolo-ribaudo): If we remove the explicit type from `value`\n // and the `as any` type cast, TypeScript crashes in an infinite\n // recursion. After upgrading to TS4.7 and finishing the noImplicitAny\n // PR, we should check if it still crashes and report it to the TS team.\n const env: EnvFunction = ((\n value: string | string[] | ((babelEnv: string) => T),\n ) =>\n cache.using(data => {\n if (typeof value === \"undefined\") return data.envName;\n if (typeof value === \"function\") {\n return assertSimpleType(value(data.envName));\n }\n return (Array.isArray(value) ? value : [value]).some(entry => {\n if (typeof entry !== \"string\") {\n throw new Error(\"Unexpected non-string value\");\n }\n return entry === data.envName;\n });\n })) as any;\n\n const caller = (cb: {\n (CallerMetadata: CallerMetadata | undefined): SimpleType;\n }) => cache.using(data => assertSimpleType(cb(data.caller)));\n\n return {\n version: coreVersion,\n cache: cache.simple(),\n // Expose \".env()\" so people can easily get the same env that we expose using the \"env\" key.\n env,\n async: () => false,\n caller,\n assertVersion,\n };\n}\n\nexport function makePresetAPI(\n cache: CacheConfigurator,\n externalDependencies: Array,\n): PresetAPI {\n const targets = () =>\n // We are using JSON.parse/JSON.stringify because it's only possible to cache\n // primitive values. We can safely stringify the targets object because it\n // only contains strings as its properties.\n // Please make the Record and Tuple proposal happen!\n JSON.parse(cache.using(data => JSON.stringify(data.targets)));\n\n const addExternalDependency = (ref: string) => {\n externalDependencies.push(ref);\n };\n\n return { ...makeConfigAPI(cache), targets, addExternalDependency };\n}\n\nexport function makePluginAPI(\n cache: CacheConfigurator,\n externalDependencies: Array,\n): PluginAPI {\n const assumption = (name: string) =>\n cache.using(data => data.assumptions[name]);\n\n return { ...makePresetAPI(cache, externalDependencies), assumption };\n}\n\nfunction assertVersion(range: string | number): void {\n if (typeof range === \"number\") {\n if (!Number.isInteger(range)) {\n throw new Error(\"Expected string or integer value.\");\n }\n range = `^${range}.0.0-0`;\n }\n if (typeof range !== \"string\") {\n throw new Error(\"Expected string or integer value.\");\n }\n\n if (semver.satisfies(coreVersion, range)) return;\n\n const limit = Error.stackTraceLimit;\n\n if (typeof limit === \"number\" && limit < 25) {\n // Bump up the limit if needed so that users are more likely\n // to be able to see what is calling Babel.\n Error.stackTraceLimit = 25;\n }\n\n const err = new Error(\n `Requires Babel \"${range}\", but was loaded with \"${coreVersion}\". ` +\n `If you are sure you have a compatible version of @babel/core, ` +\n `it is likely that something in your build process is loading the ` +\n `wrong version. Inspect the stack trace of this error to look for ` +\n `the first entry that doesn't mention \"@babel/core\" or \"babel-core\" ` +\n `to see what is calling Babel.`,\n );\n\n if (typeof limit === \"number\") {\n Error.stackTraceLimit = limit;\n }\n\n throw Object.assign(err, {\n code: \"BABEL_VERSION_UNSUPPORTED\",\n version: coreVersion,\n range,\n });\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/helpers/deep-array.js b/node_modules/@babel/core/lib/config/helpers/deep-array.js new file mode 100755 index 0000000..cca42bf --- /dev/null +++ b/node_modules/@babel/core/lib/config/helpers/deep-array.js @@ -0,0 +1,24 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.finalize = finalize; +exports.flattenToSet = flattenToSet; + +function finalize(deepArr) { + return Object.freeze(deepArr); +} +function flattenToSet(arr) { + const result = new Set(); + const stack = [arr]; + while (stack.length > 0) { + for (const el of stack.pop()) { + if (Array.isArray(el)) stack.push(el);else result.add(el); + } + } + return result; +} +0 && 0; + +//# sourceMappingURL=deep-array.js.map diff --git a/node_modules/@babel/core/lib/config/helpers/deep-array.js.map b/node_modules/@babel/core/lib/config/helpers/deep-array.js.map new file mode 100755 index 0000000..1a5b304 --- /dev/null +++ b/node_modules/@babel/core/lib/config/helpers/deep-array.js.map @@ -0,0 +1 @@ +{"version":3,"names":["finalize","deepArr","Object","freeze","flattenToSet","arr","result","Set","stack","length","el","pop","Array","isArray","push","add"],"sources":["../../../src/config/helpers/deep-array.ts"],"sourcesContent":["export type DeepArray = Array>;\n\n// Just to make sure that DeepArray is not assignable to ReadonlyDeepArray\ndeclare const __marker: unique symbol;\nexport type ReadonlyDeepArray = ReadonlyArray> & {\n [__marker]: true;\n};\n\nexport function finalize(deepArr: DeepArray): ReadonlyDeepArray {\n return Object.freeze(deepArr) as ReadonlyDeepArray;\n}\n\nexport function flattenToSet(\n arr: ReadonlyDeepArray,\n): Set {\n const result = new Set();\n const stack = [arr];\n while (stack.length > 0) {\n for (const el of stack.pop()) {\n if (Array.isArray(el)) stack.push(el as ReadonlyDeepArray);\n else result.add(el as T);\n }\n }\n return result;\n}\n"],"mappings":";;;;;;;;AAQO,SAASA,QAAQ,CAAIC,OAAqB,EAAwB;EACvE,OAAOC,MAAM,CAACC,MAAM,CAACF,OAAO,CAAC;AAC/B;AAEO,SAASG,YAAY,CAC1BC,GAAyB,EACjB;EACR,MAAMC,MAAM,GAAG,IAAIC,GAAG,EAAK;EAC3B,MAAMC,KAAK,GAAG,CAACH,GAAG,CAAC;EACnB,OAAOG,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;IACvB,KAAK,MAAMC,EAAE,IAAIF,KAAK,CAACG,GAAG,EAAE,EAAE;MAC5B,IAAIC,KAAK,CAACC,OAAO,CAACH,EAAE,CAAC,EAAEF,KAAK,CAACM,IAAI,CAACJ,EAAE,CAAyB,CAAC,KACzDJ,MAAM,CAACS,GAAG,CAACL,EAAE,CAAM;IAC1B;EACF;EACA,OAAOJ,MAAM;AACf;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/helpers/environment.js b/node_modules/@babel/core/lib/config/helpers/environment.js new file mode 100755 index 0000000..a23b80b --- /dev/null +++ b/node_modules/@babel/core/lib/config/helpers/environment.js @@ -0,0 +1,12 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getEnv = getEnv; +function getEnv(defaultValue = "development") { + return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue; +} +0 && 0; + +//# sourceMappingURL=environment.js.map diff --git a/node_modules/@babel/core/lib/config/helpers/environment.js.map b/node_modules/@babel/core/lib/config/helpers/environment.js.map new file mode 100755 index 0000000..5992a64 --- /dev/null +++ b/node_modules/@babel/core/lib/config/helpers/environment.js.map @@ -0,0 +1 @@ +{"version":3,"names":["getEnv","defaultValue","process","env","BABEL_ENV","NODE_ENV"],"sources":["../../../src/config/helpers/environment.ts"],"sourcesContent":["export function getEnv(defaultValue: string = \"development\"): string {\n return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue;\n}\n"],"mappings":";;;;;;AAAO,SAASA,MAAM,CAACC,YAAoB,GAAG,aAAa,EAAU;EACnE,OAAOC,OAAO,CAACC,GAAG,CAACC,SAAS,IAAIF,OAAO,CAACC,GAAG,CAACE,QAAQ,IAAIJ,YAAY;AACtE;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/index.js b/node_modules/@babel/core/lib/config/index.js new file mode 100755 index 0000000..f58755f --- /dev/null +++ b/node_modules/@babel/core/lib/config/index.js @@ -0,0 +1,70 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createConfigItem = createConfigItem; +exports.createConfigItemSync = exports.createConfigItemAsync = void 0; +Object.defineProperty(exports, "default", { + enumerable: true, + get: function () { + return _full.default; + } +}); +exports.loadPartialConfigSync = exports.loadPartialConfigAsync = exports.loadPartialConfig = exports.loadOptionsSync = exports.loadOptionsAsync = exports.loadOptions = void 0; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _full = require("./full"); +var _partial = require("./partial"); +var _item = require("./item"); +const loadOptionsRunner = _gensync()(function* (opts) { + var _config$options; + const config = yield* (0, _full.default)(opts); + return (_config$options = config == null ? void 0 : config.options) != null ? _config$options : null; +}); +const createConfigItemRunner = _gensync()(_item.createConfigItem); +const maybeErrback = runner => (argOrCallback, maybeCallback) => { + let arg; + let callback; + if (maybeCallback === undefined && typeof argOrCallback === "function") { + callback = argOrCallback; + arg = undefined; + } else { + callback = maybeCallback; + arg = argOrCallback; + } + return callback ? runner.errback(arg, callback) : runner.sync(arg); +}; +const loadPartialConfig = maybeErrback(_partial.loadPartialConfig); +exports.loadPartialConfig = loadPartialConfig; +const loadPartialConfigSync = _partial.loadPartialConfig.sync; +exports.loadPartialConfigSync = loadPartialConfigSync; +const loadPartialConfigAsync = _partial.loadPartialConfig.async; +exports.loadPartialConfigAsync = loadPartialConfigAsync; +const loadOptions = maybeErrback(loadOptionsRunner); +exports.loadOptions = loadOptions; +const loadOptionsSync = loadOptionsRunner.sync; +exports.loadOptionsSync = loadOptionsSync; +const loadOptionsAsync = loadOptionsRunner.async; +exports.loadOptionsAsync = loadOptionsAsync; +const createConfigItemSync = createConfigItemRunner.sync; +exports.createConfigItemSync = createConfigItemSync; +const createConfigItemAsync = createConfigItemRunner.async; +exports.createConfigItemAsync = createConfigItemAsync; +function createConfigItem(target, options, callback) { + if (callback !== undefined) { + return createConfigItemRunner.errback(target, options, callback); + } else if (typeof options === "function") { + return createConfigItemRunner.errback(target, undefined, callback); + } else { + return createConfigItemRunner.sync(target, options); + } +} +0 && 0; + +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/core/lib/config/index.js.map b/node_modules/@babel/core/lib/config/index.js.map new file mode 100755 index 0000000..c390cae --- /dev/null +++ b/node_modules/@babel/core/lib/config/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["loadOptionsRunner","gensync","opts","config","loadFullConfig","options","createConfigItemRunner","createConfigItemImpl","maybeErrback","runner","argOrCallback","maybeCallback","arg","callback","undefined","errback","sync","loadPartialConfig","loadPartialConfigRunner","loadPartialConfigSync","loadPartialConfigAsync","async","loadOptions","loadOptionsSync","loadOptionsAsync","createConfigItemSync","createConfigItemAsync","createConfigItem","target"],"sources":["../../src/config/index.ts"],"sourcesContent":["import gensync, { type Handler, type Callback } from \"gensync\";\n\nexport type {\n ResolvedConfig,\n InputOptions,\n PluginPasses,\n Plugin,\n} from \"./full\";\n\nimport type { PluginTarget } from \"./validation/options\";\n\nimport type {\n PluginAPI as basePluginAPI,\n PresetAPI as basePresetAPI,\n} from \"./helpers/config-api\";\nexport type { PluginObject } from \"./validation/plugins\";\ntype PluginAPI = basePluginAPI & typeof import(\"..\");\ntype PresetAPI = basePresetAPI & typeof import(\"..\");\nexport type { PluginAPI, PresetAPI };\n// todo: may need to refine PresetObject to be a subset of ValidatedOptions\nexport type {\n CallerMetadata,\n ValidatedOptions as PresetObject,\n} from \"./validation/options\";\n\nimport loadFullConfig, { type ResolvedConfig } from \"./full\";\nimport { loadPartialConfig as loadPartialConfigRunner } from \"./partial\";\n\nexport { loadFullConfig as default };\nexport type { PartialConfig } from \"./partial\";\n\nimport { createConfigItem as createConfigItemImpl } from \"./item\";\nimport type { ConfigItem } from \"./item\";\n\nconst loadOptionsRunner = gensync(function* (\n opts: unknown,\n): Handler {\n const config = yield* loadFullConfig(opts);\n // NOTE: We want to return \"null\" explicitly, while ?. alone returns undefined\n return config?.options ?? null;\n});\n\nconst createConfigItemRunner = gensync(createConfigItemImpl);\n\nconst maybeErrback =\n (runner: gensync.Gensync<[Arg], Return>) =>\n (argOrCallback: Arg | Callback, maybeCallback?: Callback) => {\n let arg: Arg | undefined;\n let callback: Callback;\n if (maybeCallback === undefined && typeof argOrCallback === \"function\") {\n callback = argOrCallback as Callback;\n arg = undefined;\n } else {\n callback = maybeCallback;\n arg = argOrCallback as Arg;\n }\n return callback ? runner.errback(arg, callback) : runner.sync(arg);\n };\n\nexport const loadPartialConfig = maybeErrback(loadPartialConfigRunner);\nexport const loadPartialConfigSync = loadPartialConfigRunner.sync;\nexport const loadPartialConfigAsync = loadPartialConfigRunner.async;\n\nexport const loadOptions = maybeErrback(loadOptionsRunner);\nexport const loadOptionsSync = loadOptionsRunner.sync;\nexport const loadOptionsAsync = loadOptionsRunner.async;\n\nexport const createConfigItemSync = createConfigItemRunner.sync;\nexport const createConfigItemAsync = createConfigItemRunner.async;\nexport function createConfigItem(\n target: PluginTarget,\n options: Parameters[1],\n callback?: (err: Error, val: ConfigItem | null) => void,\n) {\n if (callback !== undefined) {\n return createConfigItemRunner.errback(target, options, callback);\n } else if (typeof options === \"function\") {\n return createConfigItemRunner.errback(target, undefined, callback);\n } else {\n return createConfigItemRunner.sync(target, options);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAyBA;AACA;AAKA;AAGA,MAAMA,iBAAiB,GAAGC,UAAO,CAAC,WAChCC,IAAa,EACmB;EAAA;EAChC,MAAMC,MAAM,GAAG,OAAO,IAAAC,aAAc,EAACF,IAAI,CAAC;EAE1C,0BAAOC,MAAM,oBAANA,MAAM,CAAEE,OAAO,8BAAI,IAAI;AAChC,CAAC,CAAC;AAEF,MAAMC,sBAAsB,GAAGL,UAAO,CAACM,sBAAoB,CAAC;AAE5D,MAAMC,YAAY,GACFC,MAAsC,IACpD,CAACC,aAAqC,EAAEC,aAAgC,KAAK;EAC3E,IAAIC,GAAoB;EACxB,IAAIC,QAA0B;EAC9B,IAAIF,aAAa,KAAKG,SAAS,IAAI,OAAOJ,aAAa,KAAK,UAAU,EAAE;IACtEG,QAAQ,GAAGH,aAAiC;IAC5CE,GAAG,GAAGE,SAAS;EACjB,CAAC,MAAM;IACLD,QAAQ,GAAGF,aAAa;IACxBC,GAAG,GAAGF,aAAoB;EAC5B;EACA,OAAOG,QAAQ,GAAGJ,MAAM,CAACM,OAAO,CAACH,GAAG,EAAEC,QAAQ,CAAC,GAAGJ,MAAM,CAACO,IAAI,CAACJ,GAAG,CAAC;AACpE,CAAC;AAEI,MAAMK,iBAAiB,GAAGT,YAAY,CAACU,0BAAuB,CAAC;AAAC;AAChE,MAAMC,qBAAqB,GAAGD,0BAAuB,CAACF,IAAI;AAAC;AAC3D,MAAMI,sBAAsB,GAAGF,0BAAuB,CAACG,KAAK;AAAC;AAE7D,MAAMC,WAAW,GAAGd,YAAY,CAACR,iBAAiB,CAAC;AAAC;AACpD,MAAMuB,eAAe,GAAGvB,iBAAiB,CAACgB,IAAI;AAAC;AAC/C,MAAMQ,gBAAgB,GAAGxB,iBAAiB,CAACqB,KAAK;AAAC;AAEjD,MAAMI,oBAAoB,GAAGnB,sBAAsB,CAACU,IAAI;AAAC;AACzD,MAAMU,qBAAqB,GAAGpB,sBAAsB,CAACe,KAAK;AAAC;AAC3D,SAASM,gBAAgB,CAC9BC,MAAoB,EACpBvB,OAAmD,EACnDQ,QAAuD,EACvD;EACA,IAAIA,QAAQ,KAAKC,SAAS,EAAE;IAC1B,OAAOR,sBAAsB,CAACS,OAAO,CAACa,MAAM,EAAEvB,OAAO,EAAEQ,QAAQ,CAAC;EAClE,CAAC,MAAM,IAAI,OAAOR,OAAO,KAAK,UAAU,EAAE;IACxC,OAAOC,sBAAsB,CAACS,OAAO,CAACa,MAAM,EAAEd,SAAS,EAAED,QAAQ,CAAC;EACpE,CAAC,MAAM;IACL,OAAOP,sBAAsB,CAACU,IAAI,CAACY,MAAM,EAAEvB,OAAO,CAAC;EACrD;AACF;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/item.js b/node_modules/@babel/core/lib/config/item.js new file mode 100755 index 0000000..37f1348 --- /dev/null +++ b/node_modules/@babel/core/lib/config/item.js @@ -0,0 +1,70 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createConfigItem = createConfigItem; +exports.createItemFromDescriptor = createItemFromDescriptor; +exports.getItemDescriptor = getItemDescriptor; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +var _configDescriptors = require("./config-descriptors"); +function createItemFromDescriptor(desc) { + return new ConfigItem(desc); +} + +function* createConfigItem(value, { + dirname = ".", + type +} = {}) { + const descriptor = yield* (0, _configDescriptors.createDescriptor)(value, _path().resolve(dirname), { + type, + alias: "programmatic item" + }); + return createItemFromDescriptor(descriptor); +} +const CONFIG_ITEM_BRAND = Symbol.for("@babel/core@7 - ConfigItem"); +function getItemDescriptor(item) { + if (item != null && item[CONFIG_ITEM_BRAND]) { + return item._descriptor; + } + return undefined; +} +class ConfigItem { + + constructor(descriptor) { + this._descriptor = void 0; + this[CONFIG_ITEM_BRAND] = true; + this.value = void 0; + this.options = void 0; + this.dirname = void 0; + this.name = void 0; + this.file = void 0; + this._descriptor = descriptor; + Object.defineProperty(this, "_descriptor", { + enumerable: false + }); + Object.defineProperty(this, CONFIG_ITEM_BRAND, { + enumerable: false + }); + this.value = this._descriptor.value; + this.options = this._descriptor.options; + this.dirname = this._descriptor.dirname; + this.name = this._descriptor.name; + this.file = this._descriptor.file ? { + request: this._descriptor.file.request, + resolved: this._descriptor.file.resolved + } : undefined; + + Object.freeze(this); + } +} +Object.freeze(ConfigItem.prototype); +0 && 0; + +//# sourceMappingURL=item.js.map diff --git a/node_modules/@babel/core/lib/config/item.js.map b/node_modules/@babel/core/lib/config/item.js.map new file mode 100755 index 0000000..f5e0a47 --- /dev/null +++ b/node_modules/@babel/core/lib/config/item.js.map @@ -0,0 +1 @@ +{"version":3,"names":["createItemFromDescriptor","desc","ConfigItem","createConfigItem","value","dirname","type","descriptor","createDescriptor","path","resolve","alias","CONFIG_ITEM_BRAND","Symbol","for","getItemDescriptor","item","_descriptor","undefined","constructor","options","name","file","Object","defineProperty","enumerable","request","resolved","freeze","prototype"],"sources":["../../src/config/item.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\nimport type { PluginTarget, PluginOptions } from \"./validation/options\";\n\nimport path from \"path\";\nimport { createDescriptor } from \"./config-descriptors\";\n\nimport type { UnloadedDescriptor } from \"./config-descriptors\";\n\nexport function createItemFromDescriptor(desc: UnloadedDescriptor): ConfigItem {\n return new ConfigItem(desc);\n}\n\n/**\n * Create a config item using the same value format used in Babel's config\n * files. Items returned from this function should be cached by the caller\n * ideally, as recreating the config item will mean re-resolving the item\n * and re-evaluating the plugin/preset function.\n */\nexport function* createConfigItem(\n value:\n | PluginTarget\n | [PluginTarget, PluginOptions]\n | [PluginTarget, PluginOptions, string | void],\n {\n dirname = \".\",\n type,\n }: {\n dirname?: string;\n type?: \"preset\" | \"plugin\";\n } = {},\n): Handler {\n const descriptor = yield* createDescriptor(value, path.resolve(dirname), {\n type,\n alias: \"programmatic item\",\n });\n\n return createItemFromDescriptor(descriptor);\n}\n\nconst CONFIG_ITEM_BRAND = Symbol.for(\"@babel/core@7 - ConfigItem\");\n\nexport function getItemDescriptor(item: unknown): UnloadedDescriptor | void {\n if ((item as any)?.[CONFIG_ITEM_BRAND]) {\n return (item as ConfigItem)._descriptor;\n }\n\n return undefined;\n}\n\nexport type { ConfigItem };\n\n/**\n * A public representation of a plugin/preset that will _eventually_ be load.\n * Users can use this to interact with the results of a loaded Babel\n * configuration.\n *\n * Any changes to public properties of this class should be considered a\n * breaking change to Babel's API.\n */\nclass ConfigItem {\n /**\n * The private underlying descriptor that Babel actually cares about.\n * If you access this, you are a bad person.\n */\n _descriptor: UnloadedDescriptor;\n\n // TODO(Babel 8): Check if this symbol needs to be updated\n /**\n * Used to detect ConfigItem instances from other Babel instances.\n */\n [CONFIG_ITEM_BRAND] = true;\n\n /**\n * The resolved value of the item itself.\n */\n value: {} | Function;\n\n /**\n * The options, if any, that were passed to the item.\n * Mutating this will lead to undefined behavior.\n *\n * \"false\" means that this item has been disabled.\n */\n options: {} | void | false;\n\n /**\n * The directory that the options for this item are relative to.\n */\n dirname: string;\n\n /**\n * Get the name of the plugin, if the user gave it one.\n */\n name: string | void;\n\n /**\n * Data about the file that the item was loaded from, if Babel knows it.\n */\n file: {\n // The requested path, e.g. \"@babel/env\".\n request: string;\n // The resolved absolute path of the file.\n resolved: string;\n } | void;\n\n constructor(descriptor: UnloadedDescriptor) {\n // Make people less likely to stumble onto this if they are exploring\n // programmatically, and also make sure that if people happen to\n // pass the item through JSON.stringify, it doesn't show up.\n this._descriptor = descriptor;\n Object.defineProperty(this, \"_descriptor\", { enumerable: false });\n\n Object.defineProperty(this, CONFIG_ITEM_BRAND, { enumerable: false });\n\n this.value = this._descriptor.value;\n this.options = this._descriptor.options;\n this.dirname = this._descriptor.dirname;\n this.name = this._descriptor.name;\n this.file = this._descriptor.file\n ? {\n request: this._descriptor.file.request,\n resolved: this._descriptor.file.resolved,\n }\n : undefined;\n\n // Freeze the object to make it clear that people shouldn't expect mutating\n // this object to do anything. A new item should be created if they want\n // to change something.\n Object.freeze(this);\n }\n}\n\nObject.freeze(ConfigItem.prototype);\n"],"mappings":";;;;;;;;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AAIO,SAASA,wBAAwB,CAACC,IAAwB,EAAc;EAC7E,OAAO,IAAIC,UAAU,CAACD,IAAI,CAAC;AAC7B;;AAQO,UAAUE,gBAAgB,CAC/BC,KAGgD,EAChD;EACEC,OAAO,GAAG,GAAG;EACbC;AAIF,CAAC,GAAG,CAAC,CAAC,EACe;EACrB,MAAMC,UAAU,GAAG,OAAO,IAAAC,mCAAgB,EAACJ,KAAK,EAAEK,OAAI,CAACC,OAAO,CAACL,OAAO,CAAC,EAAE;IACvEC,IAAI;IACJK,KAAK,EAAE;EACT,CAAC,CAAC;EAEF,OAAOX,wBAAwB,CAACO,UAAU,CAAC;AAC7C;AAEA,MAAMK,iBAAiB,GAAGC,MAAM,CAACC,GAAG,CAAC,4BAA4B,CAAC;AAE3D,SAASC,iBAAiB,CAACC,IAAa,EAA6B;EAC1E,IAAKA,IAAI,YAAJA,IAAI,CAAWJ,iBAAiB,CAAC,EAAE;IACtC,OAAQI,IAAI,CAAgBC,WAAW;EACzC;EAEA,OAAOC,SAAS;AAClB;AAYA,MAAMhB,UAAU,CAAC;;EA8CfiB,WAAW,CAACZ,UAA8B,EAAE;IAAA,KAzC5CU,WAAW;IAAA,KAMVL,iBAAiB,IAAI,IAAI;IAAA,KAK1BR,KAAK;IAAA,KAQLgB,OAAO;IAAA,KAKPf,OAAO;IAAA,KAKPgB,IAAI;IAAA,KAKJC,IAAI;IAWF,IAAI,CAACL,WAAW,GAAGV,UAAU;IAC7BgB,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE;MAAEC,UAAU,EAAE;IAAM,CAAC,CAAC;IAEjEF,MAAM,CAACC,cAAc,CAAC,IAAI,EAAEZ,iBAAiB,EAAE;MAAEa,UAAU,EAAE;IAAM,CAAC,CAAC;IAErE,IAAI,CAACrB,KAAK,GAAG,IAAI,CAACa,WAAW,CAACb,KAAK;IACnC,IAAI,CAACgB,OAAO,GAAG,IAAI,CAACH,WAAW,CAACG,OAAO;IACvC,IAAI,CAACf,OAAO,GAAG,IAAI,CAACY,WAAW,CAACZ,OAAO;IACvC,IAAI,CAACgB,IAAI,GAAG,IAAI,CAACJ,WAAW,CAACI,IAAI;IACjC,IAAI,CAACC,IAAI,GAAG,IAAI,CAACL,WAAW,CAACK,IAAI,GAC7B;MACEI,OAAO,EAAE,IAAI,CAACT,WAAW,CAACK,IAAI,CAACI,OAAO;MACtCC,QAAQ,EAAE,IAAI,CAACV,WAAW,CAACK,IAAI,CAACK;IAClC,CAAC,GACDT,SAAS;;IAKbK,MAAM,CAACK,MAAM,CAAC,IAAI,CAAC;EACrB;AACF;AAEAL,MAAM,CAACK,MAAM,CAAC1B,UAAU,CAAC2B,SAAS,CAAC;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/partial.js b/node_modules/@babel/core/lib/config/partial.js new file mode 100755 index 0000000..d724fd7 --- /dev/null +++ b/node_modules/@babel/core/lib/config/partial.js @@ -0,0 +1,169 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = loadPrivatePartialConfig; +exports.loadPartialConfig = void 0; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _plugin = require("./plugin"); +var _util = require("./util"); +var _item = require("./item"); +var _configChain = require("./config-chain"); +var _environment = require("./helpers/environment"); +var _options = require("./validation/options"); +var _files = require("./files"); +var _resolveTargets = require("./resolve-targets"); +const _excluded = ["showIgnoredFiles"]; +function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } +function resolveRootMode(rootDir, rootMode) { + switch (rootMode) { + case "root": + return rootDir; + case "upward-optional": + { + const upwardRootDir = (0, _files.findConfigUpwards)(rootDir); + return upwardRootDir === null ? rootDir : upwardRootDir; + } + case "upward": + { + const upwardRootDir = (0, _files.findConfigUpwards)(rootDir); + if (upwardRootDir !== null) return upwardRootDir; + throw Object.assign(new Error(`Babel was run with rootMode:"upward" but a root could not ` + `be found when searching upward from "${rootDir}".\n` + `One of the following config files must be in the directory tree: ` + `"${_files.ROOT_CONFIG_FILENAMES.join(", ")}".`), { + code: "BABEL_ROOT_NOT_FOUND", + dirname: rootDir + }); + } + default: + throw new Error(`Assertion failure - unknown rootMode value.`); + } +} +function* loadPrivatePartialConfig(inputOpts) { + if (inputOpts != null && (typeof inputOpts !== "object" || Array.isArray(inputOpts))) { + throw new Error("Babel options must be an object, null, or undefined"); + } + const args = inputOpts ? (0, _options.validate)("arguments", inputOpts) : {}; + const { + envName = (0, _environment.getEnv)(), + cwd = ".", + root: rootDir = ".", + rootMode = "root", + caller, + cloneInputAst = true + } = args; + const absoluteCwd = _path().resolve(cwd); + const absoluteRootDir = resolveRootMode(_path().resolve(absoluteCwd, rootDir), rootMode); + const filename = typeof args.filename === "string" ? _path().resolve(cwd, args.filename) : undefined; + const showConfigPath = yield* (0, _files.resolveShowConfigPath)(absoluteCwd); + const context = { + filename, + cwd: absoluteCwd, + root: absoluteRootDir, + envName, + caller, + showConfig: showConfigPath === filename + }; + const configChain = yield* (0, _configChain.buildRootChain)(args, context); + if (!configChain) return null; + const merged = { + assumptions: {} + }; + configChain.options.forEach(opts => { + (0, _util.mergeOptions)(merged, opts); + }); + const options = Object.assign({}, merged, { + targets: (0, _resolveTargets.resolveTargets)(merged, absoluteRootDir), + cloneInputAst, + babelrc: false, + configFile: false, + browserslistConfigFile: false, + passPerPreset: false, + envName: context.envName, + cwd: context.cwd, + root: context.root, + rootMode: "root", + filename: typeof context.filename === "string" ? context.filename : undefined, + plugins: configChain.plugins.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor)), + presets: configChain.presets.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor)) + }); + return { + options, + context, + fileHandling: configChain.fileHandling, + ignore: configChain.ignore, + babelrc: configChain.babelrc, + config: configChain.config, + files: configChain.files + }; +} +const loadPartialConfig = _gensync()(function* (opts) { + let showIgnoredFiles = false; + if (typeof opts === "object" && opts !== null && !Array.isArray(opts)) { + var _opts = opts; + ({ + showIgnoredFiles + } = _opts); + opts = _objectWithoutPropertiesLoose(_opts, _excluded); + _opts; + } + const result = yield* loadPrivatePartialConfig(opts); + if (!result) return null; + const { + options, + babelrc, + ignore, + config, + fileHandling, + files + } = result; + if (fileHandling === "ignored" && !showIgnoredFiles) { + return null; + } + (options.plugins || []).forEach(item => { + if (item.value instanceof _plugin.default) { + throw new Error("Passing cached plugin instances is not supported in " + "babel.loadPartialConfig()"); + } + }); + return new PartialConfig(options, babelrc ? babelrc.filepath : undefined, ignore ? ignore.filepath : undefined, config ? config.filepath : undefined, fileHandling, files); +}); +exports.loadPartialConfig = loadPartialConfig; +class PartialConfig { + + constructor(options, babelrc, ignore, config, fileHandling, files) { + this.options = void 0; + this.babelrc = void 0; + this.babelignore = void 0; + this.config = void 0; + this.fileHandling = void 0; + this.files = void 0; + this.options = options; + this.babelignore = ignore; + this.babelrc = babelrc; + this.config = config; + this.fileHandling = fileHandling; + this.files = files; + + Object.freeze(this); + } + + hasFilesystemConfig() { + return this.babelrc !== undefined || this.config !== undefined; + } +} +Object.freeze(PartialConfig.prototype); +0 && 0; + +//# sourceMappingURL=partial.js.map diff --git a/node_modules/@babel/core/lib/config/partial.js.map b/node_modules/@babel/core/lib/config/partial.js.map new file mode 100755 index 0000000..300bfd8 --- /dev/null +++ b/node_modules/@babel/core/lib/config/partial.js.map @@ -0,0 +1 @@ +{"version":3,"names":["resolveRootMode","rootDir","rootMode","upwardRootDir","findConfigUpwards","Object","assign","Error","ROOT_CONFIG_FILENAMES","join","code","dirname","loadPrivatePartialConfig","inputOpts","Array","isArray","args","validate","envName","getEnv","cwd","root","caller","cloneInputAst","absoluteCwd","path","resolve","absoluteRootDir","filename","undefined","showConfigPath","resolveShowConfigPath","context","showConfig","configChain","buildRootChain","merged","assumptions","options","forEach","opts","mergeOptions","targets","resolveTargets","babelrc","configFile","browserslistConfigFile","passPerPreset","plugins","map","descriptor","createItemFromDescriptor","presets","fileHandling","ignore","config","files","loadPartialConfig","gensync","showIgnoredFiles","result","item","value","Plugin","PartialConfig","filepath","constructor","babelignore","freeze","hasFilesystemConfig","prototype"],"sources":["../../src/config/partial.ts"],"sourcesContent":["import path from \"path\";\nimport gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport Plugin from \"./plugin\";\nimport { mergeOptions } from \"./util\";\nimport { createItemFromDescriptor } from \"./item\";\nimport { buildRootChain } from \"./config-chain\";\nimport type { ConfigContext, FileHandling } from \"./config-chain\";\nimport { getEnv } from \"./helpers/environment\";\nimport { validate } from \"./validation/options\";\n\nimport type {\n ValidatedOptions,\n NormalizedOptions,\n RootMode,\n} from \"./validation/options\";\n\nimport {\n findConfigUpwards,\n resolveShowConfigPath,\n ROOT_CONFIG_FILENAMES,\n} from \"./files\";\nimport type { ConfigFile, IgnoreFile } from \"./files\";\nimport { resolveTargets } from \"./resolve-targets\";\n\nfunction resolveRootMode(rootDir: string, rootMode: RootMode): string {\n switch (rootMode) {\n case \"root\":\n return rootDir;\n\n case \"upward-optional\": {\n const upwardRootDir = findConfigUpwards(rootDir);\n return upwardRootDir === null ? rootDir : upwardRootDir;\n }\n\n case \"upward\": {\n const upwardRootDir = findConfigUpwards(rootDir);\n if (upwardRootDir !== null) return upwardRootDir;\n\n throw Object.assign(\n new Error(\n `Babel was run with rootMode:\"upward\" but a root could not ` +\n `be found when searching upward from \"${rootDir}\".\\n` +\n `One of the following config files must be in the directory tree: ` +\n `\"${ROOT_CONFIG_FILENAMES.join(\", \")}\".`,\n ) as any,\n {\n code: \"BABEL_ROOT_NOT_FOUND\",\n dirname: rootDir,\n },\n );\n }\n default:\n throw new Error(`Assertion failure - unknown rootMode value.`);\n }\n}\n\ntype PrivPartialConfig = {\n options: NormalizedOptions;\n context: ConfigContext;\n fileHandling: FileHandling;\n ignore: IgnoreFile | void;\n babelrc: ConfigFile | void;\n config: ConfigFile | void;\n files: Set;\n};\n\nexport default function* loadPrivatePartialConfig(\n inputOpts: unknown,\n): Handler {\n if (\n inputOpts != null &&\n (typeof inputOpts !== \"object\" || Array.isArray(inputOpts))\n ) {\n throw new Error(\"Babel options must be an object, null, or undefined\");\n }\n\n const args = inputOpts ? validate(\"arguments\", inputOpts) : {};\n\n const {\n envName = getEnv(),\n cwd = \".\",\n root: rootDir = \".\",\n rootMode = \"root\",\n caller,\n cloneInputAst = true,\n } = args;\n const absoluteCwd = path.resolve(cwd);\n const absoluteRootDir = resolveRootMode(\n path.resolve(absoluteCwd, rootDir),\n rootMode,\n );\n\n const filename =\n typeof args.filename === \"string\"\n ? path.resolve(cwd, args.filename)\n : undefined;\n\n const showConfigPath = yield* resolveShowConfigPath(absoluteCwd);\n\n const context: ConfigContext = {\n filename,\n cwd: absoluteCwd,\n root: absoluteRootDir,\n envName,\n caller,\n showConfig: showConfigPath === filename,\n };\n\n const configChain = yield* buildRootChain(args, context);\n if (!configChain) return null;\n\n const merged: ValidatedOptions = {\n assumptions: {},\n };\n configChain.options.forEach(opts => {\n mergeOptions(merged as any, opts);\n });\n\n const options: NormalizedOptions = {\n ...merged,\n targets: resolveTargets(merged, absoluteRootDir),\n\n // Tack the passes onto the object itself so that, if this object is\n // passed back to Babel a second time, it will be in the right structure\n // to not change behavior.\n cloneInputAst,\n babelrc: false,\n configFile: false,\n browserslistConfigFile: false,\n passPerPreset: false,\n envName: context.envName,\n cwd: context.cwd,\n root: context.root,\n rootMode: \"root\",\n filename:\n typeof context.filename === \"string\" ? context.filename : undefined,\n\n plugins: configChain.plugins.map(descriptor =>\n createItemFromDescriptor(descriptor),\n ),\n presets: configChain.presets.map(descriptor =>\n createItemFromDescriptor(descriptor),\n ),\n };\n\n return {\n options,\n context,\n fileHandling: configChain.fileHandling,\n ignore: configChain.ignore,\n babelrc: configChain.babelrc,\n config: configChain.config,\n files: configChain.files,\n };\n}\n\ntype LoadPartialConfigOpts = {\n showIgnoredFiles?: boolean;\n};\n\nexport const loadPartialConfig = gensync(function* (\n opts?: LoadPartialConfigOpts,\n): Handler {\n let showIgnoredFiles = false;\n // We only extract showIgnoredFiles if opts is an object, so that\n // loadPrivatePartialConfig can throw the appropriate error if it's not.\n if (typeof opts === \"object\" && opts !== null && !Array.isArray(opts)) {\n ({ showIgnoredFiles, ...opts } = opts);\n }\n\n const result: PrivPartialConfig | undefined | null =\n yield* loadPrivatePartialConfig(opts);\n if (!result) return null;\n\n const { options, babelrc, ignore, config, fileHandling, files } = result;\n\n if (fileHandling === \"ignored\" && !showIgnoredFiles) {\n return null;\n }\n\n (options.plugins || []).forEach(item => {\n // @ts-expect-error todo(flow->ts): better type annotation for `item.value`\n if (item.value instanceof Plugin) {\n throw new Error(\n \"Passing cached plugin instances is not supported in \" +\n \"babel.loadPartialConfig()\",\n );\n }\n });\n\n return new PartialConfig(\n options,\n babelrc ? babelrc.filepath : undefined,\n ignore ? ignore.filepath : undefined,\n config ? config.filepath : undefined,\n fileHandling,\n files,\n );\n});\n\nexport type { PartialConfig };\n\nclass PartialConfig {\n /**\n * These properties are public, so any changes to them should be considered\n * a breaking change to Babel's API.\n */\n options: NormalizedOptions;\n babelrc: string | void;\n babelignore: string | void;\n config: string | void;\n fileHandling: FileHandling;\n files: Set;\n\n constructor(\n options: NormalizedOptions,\n babelrc: string | void,\n ignore: string | void,\n config: string | void,\n fileHandling: FileHandling,\n files: Set,\n ) {\n this.options = options;\n this.babelignore = ignore;\n this.babelrc = babelrc;\n this.config = config;\n this.fileHandling = fileHandling;\n this.files = files;\n\n // Freeze since this is a public API and it should be extremely obvious that\n // reassigning properties on here does nothing.\n Object.freeze(this);\n }\n\n /**\n * Returns true if there is a config file in the filesystem for this config.\n */\n hasFilesystemConfig(): boolean {\n return this.babelrc !== undefined || this.config !== undefined;\n }\n}\nObject.freeze(PartialConfig.prototype);\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/pattern-to-regex.js b/node_modules/@babel/core/lib/config/pattern-to-regex.js new file mode 100755 index 0000000..73bfc1b --- /dev/null +++ b/node_modules/@babel/core/lib/config/pattern-to-regex.js @@ -0,0 +1,43 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = pathToPattern; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +const sep = `\\${_path().sep}`; +const endSep = `(?:${sep}|$)`; +const substitution = `[^${sep}]+`; +const starPat = `(?:${substitution}${sep})`; +const starPatLast = `(?:${substitution}${endSep})`; +const starStarPat = `${starPat}*?`; +const starStarPatLast = `${starPat}*?${starPatLast}?`; +function escapeRegExp(string) { + return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&"); +} + +function pathToPattern(pattern, dirname) { + const parts = _path().resolve(dirname, pattern).split(_path().sep); + return new RegExp(["^", ...parts.map((part, i) => { + const last = i === parts.length - 1; + + if (part === "**") return last ? starStarPatLast : starStarPat; + + if (part === "*") return last ? starPatLast : starPat; + + if (part.indexOf("*.") === 0) { + return substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep); + } + + return escapeRegExp(part) + (last ? endSep : sep); + })].join("")); +} +0 && 0; + +//# sourceMappingURL=pattern-to-regex.js.map diff --git a/node_modules/@babel/core/lib/config/pattern-to-regex.js.map b/node_modules/@babel/core/lib/config/pattern-to-regex.js.map new file mode 100755 index 0000000..4b6a594 --- /dev/null +++ b/node_modules/@babel/core/lib/config/pattern-to-regex.js.map @@ -0,0 +1 @@ +{"version":3,"names":["sep","path","endSep","substitution","starPat","starPatLast","starStarPat","starStarPatLast","escapeRegExp","string","replace","pathToPattern","pattern","dirname","parts","resolve","split","RegExp","map","part","i","last","length","indexOf","slice","join"],"sources":["../../src/config/pattern-to-regex.ts"],"sourcesContent":["import path from \"path\";\n\nconst sep = `\\\\${path.sep}`;\nconst endSep = `(?:${sep}|$)`;\n\nconst substitution = `[^${sep}]+`;\n\nconst starPat = `(?:${substitution}${sep})`;\nconst starPatLast = `(?:${substitution}${endSep})`;\n\nconst starStarPat = `${starPat}*?`;\nconst starStarPatLast = `${starPat}*?${starPatLast}?`;\n\nfunction escapeRegExp(string: string) {\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\");\n}\n\n/**\n * Implement basic pattern matching that will allow users to do the simple\n * tests with * and **. If users want full complex pattern matching, then can\n * always use regex matching, or function validation.\n */\nexport default function pathToPattern(\n pattern: string,\n dirname: string,\n): RegExp {\n const parts = path.resolve(dirname, pattern).split(path.sep);\n\n return new RegExp(\n [\n \"^\",\n ...parts.map((part, i) => {\n const last = i === parts.length - 1;\n\n // ** matches 0 or more path parts.\n if (part === \"**\") return last ? starStarPatLast : starStarPat;\n\n // * matches 1 path part.\n if (part === \"*\") return last ? starPatLast : starPat;\n\n // *.ext matches a wildcard with an extension.\n if (part.indexOf(\"*.\") === 0) {\n return (\n substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep)\n );\n }\n\n // Otherwise match the pattern text.\n return escapeRegExp(part) + (last ? endSep : sep);\n }),\n ].join(\"\"),\n );\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA,MAAMA,GAAG,GAAI,KAAIC,OAAI,CAACD,GAAI,EAAC;AAC3B,MAAME,MAAM,GAAI,MAAKF,GAAI,KAAI;AAE7B,MAAMG,YAAY,GAAI,KAAIH,GAAI,IAAG;AAEjC,MAAMI,OAAO,GAAI,MAAKD,YAAa,GAAEH,GAAI,GAAE;AAC3C,MAAMK,WAAW,GAAI,MAAKF,YAAa,GAAED,MAAO,GAAE;AAElD,MAAMI,WAAW,GAAI,GAAEF,OAAQ,IAAG;AAClC,MAAMG,eAAe,GAAI,GAAEH,OAAQ,KAAIC,WAAY,GAAE;AAErD,SAASG,YAAY,CAACC,MAAc,EAAE;EACpC,OAAOA,MAAM,CAACC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACtD;;AAOe,SAASC,aAAa,CACnCC,OAAe,EACfC,OAAe,EACP;EACR,MAAMC,KAAK,GAAGb,OAAI,CAACc,OAAO,CAACF,OAAO,EAAED,OAAO,CAAC,CAACI,KAAK,CAACf,OAAI,CAACD,GAAG,CAAC;EAE5D,OAAO,IAAIiB,MAAM,CACf,CACE,GAAG,EACH,GAAGH,KAAK,CAACI,GAAG,CAAC,CAACC,IAAI,EAAEC,CAAC,KAAK;IACxB,MAAMC,IAAI,GAAGD,CAAC,KAAKN,KAAK,CAACQ,MAAM,GAAG,CAAC;;IAGnC,IAAIH,IAAI,KAAK,IAAI,EAAE,OAAOE,IAAI,GAAGd,eAAe,GAAGD,WAAW;;IAG9D,IAAIa,IAAI,KAAK,GAAG,EAAE,OAAOE,IAAI,GAAGhB,WAAW,GAAGD,OAAO;;IAGrD,IAAIe,IAAI,CAACI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;MAC5B,OACEpB,YAAY,GAAGK,YAAY,CAACW,IAAI,CAACK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAIH,IAAI,GAAGnB,MAAM,GAAGF,GAAG,CAAC;IAEtE;;IAGA,OAAOQ,YAAY,CAACW,IAAI,CAAC,IAAIE,IAAI,GAAGnB,MAAM,GAAGF,GAAG,CAAC;EACnD,CAAC,CAAC,CACH,CAACyB,IAAI,CAAC,EAAE,CAAC,CACX;AACH;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/plugin.js b/node_modules/@babel/core/lib/config/plugin.js new file mode 100755 index 0000000..58dcb03 --- /dev/null +++ b/node_modules/@babel/core/lib/config/plugin.js @@ -0,0 +1,33 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _deepArray = require("./helpers/deep-array"); +class Plugin { + constructor(plugin, options, key, externalDependencies = (0, _deepArray.finalize)([])) { + this.key = void 0; + this.manipulateOptions = void 0; + this.post = void 0; + this.pre = void 0; + this.visitor = void 0; + this.parserOverride = void 0; + this.generatorOverride = void 0; + this.options = void 0; + this.externalDependencies = void 0; + this.key = plugin.name || key; + this.manipulateOptions = plugin.manipulateOptions; + this.post = plugin.post; + this.pre = plugin.pre; + this.visitor = plugin.visitor || {}; + this.parserOverride = plugin.parserOverride; + this.generatorOverride = plugin.generatorOverride; + this.options = options; + this.externalDependencies = externalDependencies; + } +} +exports.default = Plugin; +0 && 0; + +//# sourceMappingURL=plugin.js.map diff --git a/node_modules/@babel/core/lib/config/plugin.js.map b/node_modules/@babel/core/lib/config/plugin.js.map new file mode 100755 index 0000000..2ad7961 --- /dev/null +++ b/node_modules/@babel/core/lib/config/plugin.js.map @@ -0,0 +1 @@ +{"version":3,"names":["Plugin","constructor","plugin","options","key","externalDependencies","finalize","manipulateOptions","post","pre","visitor","parserOverride","generatorOverride","name"],"sources":["../../src/config/plugin.ts"],"sourcesContent":["import { finalize } from \"./helpers/deep-array\";\nimport type { ReadonlyDeepArray } from \"./helpers/deep-array\";\nimport type { PluginObject } from \"./validation/plugins\";\n\nexport default class Plugin {\n key: string | undefined | null;\n manipulateOptions?: (options: unknown, parserOpts: unknown) => void;\n post?: PluginObject[\"post\"];\n pre?: PluginObject[\"pre\"];\n visitor: PluginObject[\"visitor\"];\n\n parserOverride?: Function;\n generatorOverride?: Function;\n\n options: {};\n\n externalDependencies: ReadonlyDeepArray;\n\n constructor(\n plugin: PluginObject,\n options: {},\n key?: string,\n externalDependencies: ReadonlyDeepArray = finalize([]),\n ) {\n this.key = plugin.name || key;\n\n this.manipulateOptions = plugin.manipulateOptions;\n this.post = plugin.post;\n this.pre = plugin.pre;\n this.visitor = plugin.visitor || {};\n this.parserOverride = plugin.parserOverride;\n this.generatorOverride = plugin.generatorOverride;\n\n this.options = options;\n this.externalDependencies = externalDependencies;\n }\n}\n"],"mappings":";;;;;;AAAA;AAIe,MAAMA,MAAM,CAAC;EAc1BC,WAAW,CACTC,MAAoB,EACpBC,OAAW,EACXC,GAAY,EACZC,oBAA+C,GAAG,IAAAC,mBAAQ,EAAC,EAAE,CAAC,EAC9D;IAAA,KAlBFF,GAAG;IAAA,KACHG,iBAAiB;IAAA,KACjBC,IAAI;IAAA,KACJC,GAAG;IAAA,KACHC,OAAO;IAAA,KAEPC,cAAc;IAAA,KACdC,iBAAiB;IAAA,KAEjBT,OAAO;IAAA,KAEPE,oBAAoB;IAQlB,IAAI,CAACD,GAAG,GAAGF,MAAM,CAACW,IAAI,IAAIT,GAAG;IAE7B,IAAI,CAACG,iBAAiB,GAAGL,MAAM,CAACK,iBAAiB;IACjD,IAAI,CAACC,IAAI,GAAGN,MAAM,CAACM,IAAI;IACvB,IAAI,CAACC,GAAG,GAAGP,MAAM,CAACO,GAAG;IACrB,IAAI,CAACC,OAAO,GAAGR,MAAM,CAACQ,OAAO,IAAI,CAAC,CAAC;IACnC,IAAI,CAACC,cAAc,GAAGT,MAAM,CAACS,cAAc;IAC3C,IAAI,CAACC,iBAAiB,GAAGV,MAAM,CAACU,iBAAiB;IAEjD,IAAI,CAACT,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,oBAAoB,GAAGA,oBAAoB;EAClD;AACF;AAAC;AAAA"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/printer.js b/node_modules/@babel/core/lib/config/printer.js new file mode 100755 index 0000000..3fb9ced --- /dev/null +++ b/node_modules/@babel/core/lib/config/printer.js @@ -0,0 +1,114 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ConfigPrinter = exports.ChainFormatter = void 0; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +const ChainFormatter = { + Programmatic: 0, + Config: 1 +}; +exports.ChainFormatter = ChainFormatter; +const Formatter = { + title(type, callerName, filepath) { + let title = ""; + if (type === ChainFormatter.Programmatic) { + title = "programmatic options"; + if (callerName) { + title += " from " + callerName; + } + } else { + title = "config " + filepath; + } + return title; + }, + loc(index, envName) { + let loc = ""; + if (index != null) { + loc += `.overrides[${index}]`; + } + if (envName != null) { + loc += `.env["${envName}"]`; + } + return loc; + }, + *optionsAndDescriptors(opt) { + const content = Object.assign({}, opt.options); + delete content.overrides; + delete content.env; + const pluginDescriptors = [...(yield* opt.plugins())]; + if (pluginDescriptors.length) { + content.plugins = pluginDescriptors.map(d => descriptorToConfig(d)); + } + const presetDescriptors = [...(yield* opt.presets())]; + if (presetDescriptors.length) { + content.presets = [...presetDescriptors].map(d => descriptorToConfig(d)); + } + return JSON.stringify(content, undefined, 2); + } +}; +function descriptorToConfig(d) { + var _d$file; + let name = (_d$file = d.file) == null ? void 0 : _d$file.request; + if (name == null) { + if (typeof d.value === "object") { + name = d.value; + } else if (typeof d.value === "function") { + name = `[Function: ${d.value.toString().slice(0, 50)} ... ]`; + } + } + if (name == null) { + name = "[Unknown]"; + } + if (d.options === undefined) { + return name; + } else if (d.name == null) { + return [name, d.options]; + } else { + return [name, d.options, d.name]; + } +} +class ConfigPrinter { + constructor() { + this._stack = []; + } + configure(enabled, type, { + callerName, + filepath + }) { + if (!enabled) return () => {}; + return (content, index, envName) => { + this._stack.push({ + type, + callerName, + filepath, + content, + index, + envName + }); + }; + } + static *format(config) { + let title = Formatter.title(config.type, config.callerName, config.filepath); + const loc = Formatter.loc(config.index, config.envName); + if (loc) title += ` ${loc}`; + const content = yield* Formatter.optionsAndDescriptors(config.content); + return `${title}\n${content}`; + } + *output() { + if (this._stack.length === 0) return ""; + const configs = yield* _gensync().all(this._stack.map(s => ConfigPrinter.format(s))); + return configs.join("\n\n"); + } +} +exports.ConfigPrinter = ConfigPrinter; +0 && 0; + +//# sourceMappingURL=printer.js.map diff --git a/node_modules/@babel/core/lib/config/printer.js.map b/node_modules/@babel/core/lib/config/printer.js.map new file mode 100755 index 0000000..ae26f6a --- /dev/null +++ b/node_modules/@babel/core/lib/config/printer.js.map @@ -0,0 +1 @@ +{"version":3,"names":["ChainFormatter","Programmatic","Config","Formatter","title","type","callerName","filepath","loc","index","envName","optionsAndDescriptors","opt","content","options","overrides","env","pluginDescriptors","plugins","length","map","d","descriptorToConfig","presetDescriptors","presets","JSON","stringify","undefined","name","file","request","value","toString","slice","ConfigPrinter","_stack","configure","enabled","push","format","config","output","configs","gensync","all","s","join"],"sources":["../../src/config/printer.ts"],"sourcesContent":["import gensync from \"gensync\";\n\nimport type { Handler } from \"gensync\";\n\nimport type {\n OptionsAndDescriptors,\n UnloadedDescriptor,\n} from \"./config-descriptors\";\n\n// todo: Use flow enums when @babel/transform-flow-types supports it\nexport const ChainFormatter = {\n Programmatic: 0,\n Config: 1,\n};\n\ntype PrintableConfig = {\n content: OptionsAndDescriptors;\n type: typeof ChainFormatter[keyof typeof ChainFormatter];\n callerName: string | undefined | null;\n filepath: string | undefined | null;\n index: number | undefined | null;\n envName: string | undefined | null;\n};\n\nconst Formatter = {\n title(\n type: typeof ChainFormatter[keyof typeof ChainFormatter],\n callerName?: string | null,\n filepath?: string | null,\n ): string {\n let title = \"\";\n if (type === ChainFormatter.Programmatic) {\n title = \"programmatic options\";\n if (callerName) {\n title += \" from \" + callerName;\n }\n } else {\n title = \"config \" + filepath;\n }\n return title;\n },\n loc(index?: number | null, envName?: string | null): string {\n let loc = \"\";\n if (index != null) {\n loc += `.overrides[${index}]`;\n }\n if (envName != null) {\n loc += `.env[\"${envName}\"]`;\n }\n return loc;\n },\n\n *optionsAndDescriptors(opt: OptionsAndDescriptors) {\n const content = { ...opt.options };\n // overrides and env will be printed as separated config items\n delete content.overrides;\n delete content.env;\n // resolve to descriptors\n const pluginDescriptors = [...(yield* opt.plugins())];\n if (pluginDescriptors.length) {\n content.plugins = pluginDescriptors.map(d => descriptorToConfig(d));\n }\n const presetDescriptors = [...(yield* opt.presets())];\n if (presetDescriptors.length) {\n content.presets = [...presetDescriptors].map(d => descriptorToConfig(d));\n }\n return JSON.stringify(content, undefined, 2);\n },\n};\n\nfunction descriptorToConfig(\n d: UnloadedDescriptor,\n): string | {} | Array {\n let name = d.file?.request;\n if (name == null) {\n if (typeof d.value === \"object\") {\n name = d.value;\n } else if (typeof d.value === \"function\") {\n // If the unloaded descriptor is a function, i.e. `plugins: [ require(\"my-plugin\") ]`,\n // we print the first 50 characters of the function source code and hopefully we can see\n // `name: 'my-plugin'` in the source\n name = `[Function: ${d.value.toString().slice(0, 50)} ... ]`;\n }\n }\n if (name == null) {\n name = \"[Unknown]\";\n }\n if (d.options === undefined) {\n return name;\n } else if (d.name == null) {\n return [name, d.options];\n } else {\n return [name, d.options, d.name];\n }\n}\n\nexport class ConfigPrinter {\n _stack: Array = [];\n configure(\n enabled: boolean,\n type: typeof ChainFormatter[keyof typeof ChainFormatter],\n {\n callerName,\n filepath,\n }: {\n callerName?: string;\n filepath?: string;\n },\n ) {\n if (!enabled) return () => {};\n return (\n content: OptionsAndDescriptors,\n index?: number | null,\n envName?: string | null,\n ) => {\n this._stack.push({\n type,\n callerName,\n filepath,\n content,\n index,\n envName,\n });\n };\n }\n static *format(config: PrintableConfig): Handler {\n let title = Formatter.title(\n config.type,\n config.callerName,\n config.filepath,\n );\n const loc = Formatter.loc(config.index, config.envName);\n if (loc) title += ` ${loc}`;\n const content = yield* Formatter.optionsAndDescriptors(config.content);\n return `${title}\\n${content}`;\n }\n\n *output(): Handler {\n if (this._stack.length === 0) return \"\";\n const configs = yield* gensync.all(\n this._stack.map(s => ConfigPrinter.format(s)),\n );\n return configs.join(\"\\n\\n\");\n }\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/resolve-targets-browser.js b/node_modules/@babel/core/lib/config/resolve-targets-browser.js new file mode 100755 index 0000000..d2c2aa3 --- /dev/null +++ b/node_modules/@babel/core/lib/config/resolve-targets-browser.js @@ -0,0 +1,44 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.resolveBrowserslistConfigFile = resolveBrowserslistConfigFile; +exports.resolveTargets = resolveTargets; +function _helperCompilationTargets() { + const data = require("@babel/helper-compilation-targets"); + _helperCompilationTargets = function () { + return data; + }; + return data; +} +function resolveBrowserslistConfigFile( +browserslistConfigFile, +configFilePath) { + return undefined; +} +function resolveTargets(options, +root) { + const optTargets = options.targets; + let targets; + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { + browsers: optTargets + }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = Object.assign({}, optTargets, { + esmodules: "intersect" + }); + } else { + targets = optTargets; + } + } + return (0, _helperCompilationTargets().default)(targets, { + ignoreBrowserslistConfig: true, + browserslistEnv: options.browserslistEnv + }); +} +0 && 0; + +//# sourceMappingURL=resolve-targets-browser.js.map diff --git a/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map b/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map new file mode 100755 index 0000000..986bfef --- /dev/null +++ b/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map @@ -0,0 +1 @@ +{"version":3,"names":["resolveBrowserslistConfigFile","browserslistConfigFile","configFilePath","undefined","resolveTargets","options","root","optTargets","targets","Array","isArray","browsers","esmodules","getTargets","ignoreBrowserslistConfig","browserslistEnv"],"sources":["../../src/config/resolve-targets-browser.ts"],"sourcesContent":["import type { ValidatedOptions } from \"./validation/options\";\nimport getTargets, {\n type InputTargets,\n} from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nexport function resolveBrowserslistConfigFile(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n browserslistConfigFile: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n configFilePath: string,\n): string | void {\n return undefined;\n}\n\nexport function resolveTargets(\n options: ValidatedOptions,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n root: string,\n): Targets {\n const optTargets = options.targets;\n let targets: InputTargets;\n\n if (typeof optTargets === \"string\" || Array.isArray(optTargets)) {\n targets = { browsers: optTargets };\n } else if (optTargets) {\n if (\"esmodules\" in optTargets) {\n targets = { ...optTargets, esmodules: \"intersect\" };\n } else {\n // https://github.com/microsoft/TypeScript/issues/17002\n targets = optTargets as InputTargets;\n }\n }\n\n return getTargets(targets, {\n ignoreBrowserslistConfig: true,\n browserslistEnv: options.browserslistEnv,\n });\n}\n"],"mappings":";;;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAMO,SAASA,6BAA6B;AAE3CC,sBAA8B;AAE9BC,cAAsB,EACP;EACf,OAAOC,SAAS;AAClB;AAEO,SAASC,cAAc,CAC5BC,OAAyB;AAEzBC,IAAY,EACH;EACT,MAAMC,UAAU,GAAGF,OAAO,CAACG,OAAO;EAClC,IAAIA,OAAqB;EAEzB,IAAI,OAAOD,UAAU,KAAK,QAAQ,IAAIE,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;IAC/DC,OAAO,GAAG;MAAEG,QAAQ,EAAEJ;IAAW,CAAC;EACpC,CAAC,MAAM,IAAIA,UAAU,EAAE;IACrB,IAAI,WAAW,IAAIA,UAAU,EAAE;MAC7BC,OAAO,qBAAQD,UAAU;QAAEK,SAAS,EAAE;MAAW,EAAE;IACrD,CAAC,MAAM;MAELJ,OAAO,GAAGD,UAA0B;IACtC;EACF;EAEA,OAAO,IAAAM,mCAAU,EAACL,OAAO,EAAE;IACzBM,wBAAwB,EAAE,IAAI;IAC9BC,eAAe,EAAEV,OAAO,CAACU;EAC3B,CAAC,CAAC;AACJ;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/resolve-targets.js b/node_modules/@babel/core/lib/config/resolve-targets.js new file mode 100755 index 0000000..1fc539a --- /dev/null +++ b/node_modules/@babel/core/lib/config/resolve-targets.js @@ -0,0 +1,61 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.resolveBrowserslistConfigFile = resolveBrowserslistConfigFile; +exports.resolveTargets = resolveTargets; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _helperCompilationTargets() { + const data = require("@babel/helper-compilation-targets"); + _helperCompilationTargets = function () { + return data; + }; + return data; +} +({}); +function resolveBrowserslistConfigFile(browserslistConfigFile, configFileDir) { + return _path().resolve(configFileDir, browserslistConfigFile); +} +function resolveTargets(options, root) { + const optTargets = options.targets; + let targets; + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { + browsers: optTargets + }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = Object.assign({}, optTargets, { + esmodules: "intersect" + }); + } else { + targets = optTargets; + } + } + const { + browserslistConfigFile + } = options; + let configFile; + let ignoreBrowserslistConfig = false; + if (typeof browserslistConfigFile === "string") { + configFile = browserslistConfigFile; + } else { + ignoreBrowserslistConfig = browserslistConfigFile === false; + } + return (0, _helperCompilationTargets().default)(targets, { + ignoreBrowserslistConfig, + configFile, + configPath: root, + browserslistEnv: options.browserslistEnv + }); +} +0 && 0; + +//# sourceMappingURL=resolve-targets.js.map diff --git a/node_modules/@babel/core/lib/config/resolve-targets.js.map b/node_modules/@babel/core/lib/config/resolve-targets.js.map new file mode 100755 index 0000000..f3059fe --- /dev/null +++ b/node_modules/@babel/core/lib/config/resolve-targets.js.map @@ -0,0 +1 @@ +{"version":3,"names":["resolveBrowserslistConfigFile","browserslistConfigFile","configFileDir","path","resolve","resolveTargets","options","root","optTargets","targets","Array","isArray","browsers","esmodules","configFile","ignoreBrowserslistConfig","getTargets","configPath","browserslistEnv"],"sources":["../../src/config/resolve-targets.ts"],"sourcesContent":["type browserType = typeof import(\"./resolve-targets-browser\");\ntype nodeType = typeof import(\"./resolve-targets\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of index-browser, since this file may be replaced at bundle time with index-browser.\n({} as any as browserType as nodeType);\n\nimport type { ValidatedOptions } from \"./validation/options\";\nimport path from \"path\";\nimport getTargets, {\n type InputTargets,\n} from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nexport function resolveBrowserslistConfigFile(\n browserslistConfigFile: string,\n configFileDir: string,\n): string | undefined {\n return path.resolve(configFileDir, browserslistConfigFile);\n}\n\nexport function resolveTargets(\n options: ValidatedOptions,\n root: string,\n): Targets {\n const optTargets = options.targets;\n let targets: InputTargets;\n\n if (typeof optTargets === \"string\" || Array.isArray(optTargets)) {\n targets = { browsers: optTargets };\n } else if (optTargets) {\n if (\"esmodules\" in optTargets) {\n targets = { ...optTargets, esmodules: \"intersect\" };\n } else {\n // https://github.com/microsoft/TypeScript/issues/17002\n targets = optTargets as InputTargets;\n }\n }\n\n const { browserslistConfigFile } = options;\n let configFile;\n let ignoreBrowserslistConfig = false;\n if (typeof browserslistConfigFile === \"string\") {\n configFile = browserslistConfigFile;\n } else {\n ignoreBrowserslistConfig = browserslistConfigFile === false;\n }\n\n return getTargets(targets, {\n ignoreBrowserslistConfig,\n configFile,\n configPath: root,\n browserslistEnv: options.browserslistEnv,\n });\n}\n"],"mappings":";;;;;;;AAQA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAJA,CAAC,CAAC,CAAC;AAUI,SAASA,6BAA6B,CAC3CC,sBAA8B,EAC9BC,aAAqB,EACD;EACpB,OAAOC,OAAI,CAACC,OAAO,CAACF,aAAa,EAAED,sBAAsB,CAAC;AAC5D;AAEO,SAASI,cAAc,CAC5BC,OAAyB,EACzBC,IAAY,EACH;EACT,MAAMC,UAAU,GAAGF,OAAO,CAACG,OAAO;EAClC,IAAIA,OAAqB;EAEzB,IAAI,OAAOD,UAAU,KAAK,QAAQ,IAAIE,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;IAC/DC,OAAO,GAAG;MAAEG,QAAQ,EAAEJ;IAAW,CAAC;EACpC,CAAC,MAAM,IAAIA,UAAU,EAAE;IACrB,IAAI,WAAW,IAAIA,UAAU,EAAE;MAC7BC,OAAO,qBAAQD,UAAU;QAAEK,SAAS,EAAE;MAAW,EAAE;IACrD,CAAC,MAAM;MAELJ,OAAO,GAAGD,UAA0B;IACtC;EACF;EAEA,MAAM;IAAEP;EAAuB,CAAC,GAAGK,OAAO;EAC1C,IAAIQ,UAAU;EACd,IAAIC,wBAAwB,GAAG,KAAK;EACpC,IAAI,OAAOd,sBAAsB,KAAK,QAAQ,EAAE;IAC9Ca,UAAU,GAAGb,sBAAsB;EACrC,CAAC,MAAM;IACLc,wBAAwB,GAAGd,sBAAsB,KAAK,KAAK;EAC7D;EAEA,OAAO,IAAAe,mCAAU,EAACP,OAAO,EAAE;IACzBM,wBAAwB;IACxBD,UAAU;IACVG,UAAU,EAAEV,IAAI;IAChBW,eAAe,EAAEZ,OAAO,CAACY;EAC3B,CAAC,CAAC;AACJ;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/util.js b/node_modules/@babel/core/lib/config/util.js new file mode 100755 index 0000000..077f1af --- /dev/null +++ b/node_modules/@babel/core/lib/config/util.js @@ -0,0 +1,31 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isIterableIterator = isIterableIterator; +exports.mergeOptions = mergeOptions; +function mergeOptions(target, source) { + for (const k of Object.keys(source)) { + if ((k === "parserOpts" || k === "generatorOpts" || k === "assumptions") && source[k]) { + const parserOpts = source[k]; + const targetObj = target[k] || (target[k] = {}); + mergeDefaultFields(targetObj, parserOpts); + } else { + const val = source[k]; + if (val !== undefined) target[k] = val; + } + } +} +function mergeDefaultFields(target, source) { + for (const k of Object.keys(source)) { + const val = source[k]; + if (val !== undefined) target[k] = val; + } +} +function isIterableIterator(value) { + return !!value && typeof value.next === "function" && typeof value[Symbol.iterator] === "function"; +} +0 && 0; + +//# sourceMappingURL=util.js.map diff --git a/node_modules/@babel/core/lib/config/util.js.map b/node_modules/@babel/core/lib/config/util.js.map new file mode 100755 index 0000000..4157eca --- /dev/null +++ b/node_modules/@babel/core/lib/config/util.js.map @@ -0,0 +1 @@ +{"version":3,"names":["mergeOptions","target","source","k","Object","keys","parserOpts","targetObj","mergeDefaultFields","val","undefined","isIterableIterator","value","next","Symbol","iterator"],"sources":["../../src/config/util.ts"],"sourcesContent":["import type { ValidatedOptions, NormalizedOptions } from \"./validation/options\";\n\nexport function mergeOptions(\n target: ValidatedOptions,\n source: ValidatedOptions | NormalizedOptions,\n): void {\n for (const k of Object.keys(source)) {\n if (\n (k === \"parserOpts\" || k === \"generatorOpts\" || k === \"assumptions\") &&\n source[k]\n ) {\n const parserOpts = source[k];\n const targetObj = target[k] || (target[k] = {});\n mergeDefaultFields(targetObj, parserOpts);\n } else {\n //@ts-expect-error k must index source\n const val = source[k];\n //@ts-expect-error assigning source to target\n if (val !== undefined) target[k] = val as any;\n }\n }\n}\n\nfunction mergeDefaultFields(target: T, source: T) {\n for (const k of Object.keys(source) as (keyof T)[]) {\n const val = source[k];\n if (val !== undefined) target[k] = val;\n }\n}\n\nexport function isIterableIterator(value: any): value is IterableIterator {\n return (\n !!value &&\n typeof value.next === \"function\" &&\n typeof value[Symbol.iterator] === \"function\"\n );\n}\n"],"mappings":";;;;;;;AAEO,SAASA,YAAY,CAC1BC,MAAwB,EACxBC,MAA4C,EACtC;EACN,KAAK,MAAMC,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,EAAE;IACnC,IACE,CAACC,CAAC,KAAK,YAAY,IAAIA,CAAC,KAAK,eAAe,IAAIA,CAAC,KAAK,aAAa,KACnED,MAAM,CAACC,CAAC,CAAC,EACT;MACA,MAAMG,UAAU,GAAGJ,MAAM,CAACC,CAAC,CAAC;MAC5B,MAAMI,SAAS,GAAGN,MAAM,CAACE,CAAC,CAAC,KAAKF,MAAM,CAACE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;MAC/CK,kBAAkB,CAACD,SAAS,EAAED,UAAU,CAAC;IAC3C,CAAC,MAAM;MAEL,MAAMG,GAAG,GAAGP,MAAM,CAACC,CAAC,CAAC;MAErB,IAAIM,GAAG,KAAKC,SAAS,EAAET,MAAM,CAACE,CAAC,CAAC,GAAGM,GAAU;IAC/C;EACF;AACF;AAEA,SAASD,kBAAkB,CAAeP,MAAS,EAAEC,MAAS,EAAE;EAC9D,KAAK,MAAMC,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,EAAiB;IAClD,MAAMO,GAAG,GAAGP,MAAM,CAACC,CAAC,CAAC;IACrB,IAAIM,GAAG,KAAKC,SAAS,EAAET,MAAM,CAACE,CAAC,CAAC,GAAGM,GAAG;EACxC;AACF;AAEO,SAASE,kBAAkB,CAACC,KAAU,EAAkC;EAC7E,OACE,CAAC,CAACA,KAAK,IACP,OAAOA,KAAK,CAACC,IAAI,KAAK,UAAU,IAChC,OAAOD,KAAK,CAACE,MAAM,CAACC,QAAQ,CAAC,KAAK,UAAU;AAEhD;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/option-assertions.js b/node_modules/@babel/core/lib/config/validation/option-assertions.js new file mode 100755 index 0000000..21bc849 --- /dev/null +++ b/node_modules/@babel/core/lib/config/validation/option-assertions.js @@ -0,0 +1,282 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.access = access; +exports.assertArray = assertArray; +exports.assertAssumptions = assertAssumptions; +exports.assertBabelrcSearch = assertBabelrcSearch; +exports.assertBoolean = assertBoolean; +exports.assertCallerMetadata = assertCallerMetadata; +exports.assertCompact = assertCompact; +exports.assertConfigApplicableTest = assertConfigApplicableTest; +exports.assertConfigFileSearch = assertConfigFileSearch; +exports.assertFunction = assertFunction; +exports.assertIgnoreList = assertIgnoreList; +exports.assertInputSourceMap = assertInputSourceMap; +exports.assertObject = assertObject; +exports.assertPluginList = assertPluginList; +exports.assertRootMode = assertRootMode; +exports.assertSourceMaps = assertSourceMaps; +exports.assertSourceType = assertSourceType; +exports.assertString = assertString; +exports.assertTargets = assertTargets; +exports.msg = msg; +function _helperCompilationTargets() { + const data = require("@babel/helper-compilation-targets"); + _helperCompilationTargets = function () { + return data; + }; + return data; +} +var _options = require("./options"); +function msg(loc) { + switch (loc.type) { + case "root": + return ``; + case "env": + return `${msg(loc.parent)}.env["${loc.name}"]`; + case "overrides": + return `${msg(loc.parent)}.overrides[${loc.index}]`; + case "option": + return `${msg(loc.parent)}.${loc.name}`; + case "access": + return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`; + default: + throw new Error(`Assertion failure: Unknown type ${loc.type}`); + } +} +function access(loc, name) { + return { + type: "access", + name, + parent: loc + }; +} +function assertRootMode(loc, value) { + if (value !== undefined && value !== "root" && value !== "upward" && value !== "upward-optional") { + throw new Error(`${msg(loc)} must be a "root", "upward", "upward-optional" or undefined`); + } + return value; +} +function assertSourceMaps(loc, value) { + if (value !== undefined && typeof value !== "boolean" && value !== "inline" && value !== "both") { + throw new Error(`${msg(loc)} must be a boolean, "inline", "both", or undefined`); + } + return value; +} +function assertCompact(loc, value) { + if (value !== undefined && typeof value !== "boolean" && value !== "auto") { + throw new Error(`${msg(loc)} must be a boolean, "auto", or undefined`); + } + return value; +} +function assertSourceType(loc, value) { + if (value !== undefined && value !== "module" && value !== "script" && value !== "unambiguous") { + throw new Error(`${msg(loc)} must be "module", "script", "unambiguous", or undefined`); + } + return value; +} +function assertCallerMetadata(loc, value) { + const obj = assertObject(loc, value); + if (obj) { + if (typeof obj.name !== "string") { + throw new Error(`${msg(loc)} set but does not contain "name" property string`); + } + for (const prop of Object.keys(obj)) { + const propLoc = access(loc, prop); + const value = obj[prop]; + if (value != null && typeof value !== "boolean" && typeof value !== "string" && typeof value !== "number") { + throw new Error(`${msg(propLoc)} must be null, undefined, a boolean, a string, or a number.`); + } + } + } + return value; +} +function assertInputSourceMap(loc, value) { + if (value !== undefined && typeof value !== "boolean" && (typeof value !== "object" || !value)) { + throw new Error(`${msg(loc)} must be a boolean, object, or undefined`); + } + return value; +} +function assertString(loc, value) { + if (value !== undefined && typeof value !== "string") { + throw new Error(`${msg(loc)} must be a string, or undefined`); + } + return value; +} +function assertFunction(loc, value) { + if (value !== undefined && typeof value !== "function") { + throw new Error(`${msg(loc)} must be a function, or undefined`); + } + return value; +} +function assertBoolean(loc, value) { + if (value !== undefined && typeof value !== "boolean") { + throw new Error(`${msg(loc)} must be a boolean, or undefined`); + } + return value; +} +function assertObject(loc, value) { + if (value !== undefined && (typeof value !== "object" || Array.isArray(value) || !value)) { + throw new Error(`${msg(loc)} must be an object, or undefined`); + } + return value; +} +function assertArray(loc, value) { + if (value != null && !Array.isArray(value)) { + throw new Error(`${msg(loc)} must be an array, or undefined`); + } + return value; +} +function assertIgnoreList(loc, value) { + const arr = assertArray(loc, value); + if (arr) { + arr.forEach((item, i) => assertIgnoreItem(access(loc, i), item)); + } + return arr; +} +function assertIgnoreItem(loc, value) { + if (typeof value !== "string" && typeof value !== "function" && !(value instanceof RegExp)) { + throw new Error(`${msg(loc)} must be an array of string/Function/RegExp values, or undefined`); + } + return value; +} +function assertConfigApplicableTest(loc, value) { + if (value === undefined) { + return value; + } + if (Array.isArray(value)) { + value.forEach((item, i) => { + if (!checkValidTest(item)) { + throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`); + } + }); + } else if (!checkValidTest(value)) { + throw new Error(`${msg(loc)} must be a string/Function/RegExp, or an array of those`); + } + return value; +} +function checkValidTest(value) { + return typeof value === "string" || typeof value === "function" || value instanceof RegExp; +} +function assertConfigFileSearch(loc, value) { + if (value !== undefined && typeof value !== "boolean" && typeof value !== "string") { + throw new Error(`${msg(loc)} must be a undefined, a boolean, a string, ` + `got ${JSON.stringify(value)}`); + } + return value; +} +function assertBabelrcSearch(loc, value) { + if (value === undefined || typeof value === "boolean") { + return value; + } + if (Array.isArray(value)) { + value.forEach((item, i) => { + if (!checkValidTest(item)) { + throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`); + } + }); + } else if (!checkValidTest(value)) { + throw new Error(`${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` + `or an array of those, got ${JSON.stringify(value)}`); + } + return value; +} +function assertPluginList(loc, value) { + const arr = assertArray(loc, value); + if (arr) { + arr.forEach((item, i) => assertPluginItem(access(loc, i), item)); + } + return arr; +} +function assertPluginItem(loc, value) { + if (Array.isArray(value)) { + if (value.length === 0) { + throw new Error(`${msg(loc)} must include an object`); + } + if (value.length > 3) { + throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`); + } + assertPluginTarget(access(loc, 0), value[0]); + if (value.length > 1) { + const opts = value[1]; + if (opts !== undefined && opts !== false && (typeof opts !== "object" || Array.isArray(opts) || opts === null)) { + throw new Error(`${msg(access(loc, 1))} must be an object, false, or undefined`); + } + } + if (value.length === 3) { + const name = value[2]; + if (name !== undefined && typeof name !== "string") { + throw new Error(`${msg(access(loc, 2))} must be a string, or undefined`); + } + } + } else { + assertPluginTarget(loc, value); + } + + return value; +} +function assertPluginTarget(loc, value) { + if ((typeof value !== "object" || !value) && typeof value !== "string" && typeof value !== "function") { + throw new Error(`${msg(loc)} must be a string, object, function`); + } + return value; +} +function assertTargets(loc, value) { + if ((0, _helperCompilationTargets().isBrowsersQueryValid)(value)) return value; + if (typeof value !== "object" || !value || Array.isArray(value)) { + throw new Error(`${msg(loc)} must be a string, an array of strings or an object`); + } + const browsersLoc = access(loc, "browsers"); + const esmodulesLoc = access(loc, "esmodules"); + assertBrowsersList(browsersLoc, value.browsers); + assertBoolean(esmodulesLoc, value.esmodules); + for (const key of Object.keys(value)) { + const val = value[key]; + const subLoc = access(loc, key); + if (key === "esmodules") assertBoolean(subLoc, val);else if (key === "browsers") assertBrowsersList(subLoc, val);else if (!Object.hasOwnProperty.call(_helperCompilationTargets().TargetNames, key)) { + const validTargets = Object.keys(_helperCompilationTargets().TargetNames).join(", "); + throw new Error(`${msg(subLoc)} is not a valid target. Supported targets are ${validTargets}`); + } else assertBrowserVersion(subLoc, val); + } + return value; +} +function assertBrowsersList(loc, value) { + if (value !== undefined && !(0, _helperCompilationTargets().isBrowsersQueryValid)(value)) { + throw new Error(`${msg(loc)} must be undefined, a string or an array of strings`); + } +} +function assertBrowserVersion(loc, value) { + if (typeof value === "number" && Math.round(value) === value) return; + if (typeof value === "string") return; + throw new Error(`${msg(loc)} must be a string or an integer number`); +} +function assertAssumptions(loc, value) { + if (value === undefined) return; + if (typeof value !== "object" || value === null) { + throw new Error(`${msg(loc)} must be an object or undefined.`); + } + + let root = loc; + do { + root = root.parent; + } while (root.type !== "root"); + const inPreset = root.source === "preset"; + for (const name of Object.keys(value)) { + const subLoc = access(loc, name); + if (!_options.assumptionsNames.has(name)) { + throw new Error(`${msg(subLoc)} is not a supported assumption.`); + } + if (typeof value[name] !== "boolean") { + throw new Error(`${msg(subLoc)} must be a boolean.`); + } + if (inPreset && value[name] === false) { + throw new Error(`${msg(subLoc)} cannot be set to 'false' inside presets.`); + } + } + + return value; +} +0 && 0; + +//# sourceMappingURL=option-assertions.js.map diff --git a/node_modules/@babel/core/lib/config/validation/option-assertions.js.map b/node_modules/@babel/core/lib/config/validation/option-assertions.js.map new file mode 100755 index 0000000..e36c494 --- /dev/null +++ b/node_modules/@babel/core/lib/config/validation/option-assertions.js.map @@ -0,0 +1 @@ +{"version":3,"names":["msg","loc","type","parent","name","index","JSON","stringify","Error","access","assertRootMode","value","undefined","assertSourceMaps","assertCompact","assertSourceType","assertCallerMetadata","obj","assertObject","prop","Object","keys","propLoc","assertInputSourceMap","assertString","assertFunction","assertBoolean","Array","isArray","assertArray","assertIgnoreList","arr","forEach","item","i","assertIgnoreItem","RegExp","assertConfigApplicableTest","checkValidTest","assertConfigFileSearch","assertBabelrcSearch","assertPluginList","assertPluginItem","length","assertPluginTarget","opts","assertTargets","isBrowsersQueryValid","browsersLoc","esmodulesLoc","assertBrowsersList","browsers","esmodules","key","val","subLoc","hasOwnProperty","call","TargetNames","validTargets","join","assertBrowserVersion","Math","round","assertAssumptions","root","inPreset","source","assumptionsNames","has"],"sources":["../../../src/config/validation/option-assertions.ts"],"sourcesContent":["import {\n isBrowsersQueryValid,\n TargetNames,\n} from \"@babel/helper-compilation-targets\";\n\nimport type {\n ConfigFileSearch,\n BabelrcSearch,\n IgnoreList,\n IgnoreItem,\n PluginList,\n PluginItem,\n PluginTarget,\n ConfigApplicableTest,\n SourceMapsOption,\n SourceTypeOption,\n CompactOption,\n RootInputSourceMapOption,\n NestingPath,\n CallerMetadata,\n RootMode,\n TargetsListOrObject,\n AssumptionName,\n} from \"./options\";\n\nimport { assumptionsNames } from \"./options\";\n\nexport type { RootPath } from \"./options\";\n\nexport type ValidatorSet = {\n [name: string]: Validator;\n};\n\nexport type Validator = (loc: OptionPath, value: unknown) => T;\n\nexport function msg(loc: NestingPath | GeneralPath): string {\n switch (loc.type) {\n case \"root\":\n return ``;\n case \"env\":\n return `${msg(loc.parent)}.env[\"${loc.name}\"]`;\n case \"overrides\":\n return `${msg(loc.parent)}.overrides[${loc.index}]`;\n case \"option\":\n return `${msg(loc.parent)}.${loc.name}`;\n case \"access\":\n return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`;\n default:\n // @ts-expect-error should not happen when code is type checked\n throw new Error(`Assertion failure: Unknown type ${loc.type}`);\n }\n}\n\nexport function access(loc: GeneralPath, name: string | number): AccessPath {\n return {\n type: \"access\",\n name,\n parent: loc,\n };\n}\n\nexport type OptionPath = Readonly<{\n type: \"option\";\n name: string;\n parent: NestingPath;\n}>;\ntype AccessPath = Readonly<{\n type: \"access\";\n name: string | number;\n parent: GeneralPath;\n}>;\ntype GeneralPath = OptionPath | AccessPath;\n\nexport function assertRootMode(\n loc: OptionPath,\n value: unknown,\n): RootMode | void {\n if (\n value !== undefined &&\n value !== \"root\" &&\n value !== \"upward\" &&\n value !== \"upward-optional\"\n ) {\n throw new Error(\n `${msg(loc)} must be a \"root\", \"upward\", \"upward-optional\" or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceMaps(\n loc: OptionPath,\n value: unknown,\n): SourceMapsOption | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n value !== \"inline\" &&\n value !== \"both\"\n ) {\n throw new Error(\n `${msg(loc)} must be a boolean, \"inline\", \"both\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCompact(\n loc: OptionPath,\n value: unknown,\n): CompactOption | void {\n if (value !== undefined && typeof value !== \"boolean\" && value !== \"auto\") {\n throw new Error(`${msg(loc)} must be a boolean, \"auto\", or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceType(\n loc: OptionPath,\n value: unknown,\n): SourceTypeOption | void {\n if (\n value !== undefined &&\n value !== \"module\" &&\n value !== \"script\" &&\n value !== \"unambiguous\"\n ) {\n throw new Error(\n `${msg(loc)} must be \"module\", \"script\", \"unambiguous\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCallerMetadata(\n loc: OptionPath,\n value: unknown,\n): CallerMetadata | undefined {\n const obj = assertObject(loc, value);\n if (obj) {\n if (typeof obj.name !== \"string\") {\n throw new Error(\n `${msg(loc)} set but does not contain \"name\" property string`,\n );\n }\n\n for (const prop of Object.keys(obj)) {\n const propLoc = access(loc, prop);\n const value = obj[prop];\n if (\n value != null &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\" &&\n typeof value !== \"number\"\n ) {\n // NOTE(logan): I'm limiting the type here so that we can guarantee that\n // the \"caller\" value will serialize to JSON nicely. We can always\n // allow more complex structures later though.\n throw new Error(\n `${msg(\n propLoc,\n )} must be null, undefined, a boolean, a string, or a number.`,\n );\n }\n }\n }\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n\nexport function assertInputSourceMap(\n loc: OptionPath,\n value: unknown,\n): RootInputSourceMapOption | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n (typeof value !== \"object\" || !value)\n ) {\n throw new Error(`${msg(loc)} must be a boolean, object, or undefined`);\n }\n return value;\n}\n\nexport function assertString(loc: GeneralPath, value: unknown): string | void {\n if (value !== undefined && typeof value !== \"string\") {\n throw new Error(`${msg(loc)} must be a string, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertFunction(\n loc: GeneralPath,\n value: unknown,\n): Function | void {\n if (value !== undefined && typeof value !== \"function\") {\n throw new Error(`${msg(loc)} must be a function, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBoolean(\n loc: GeneralPath,\n value: unknown,\n): boolean | void {\n if (value !== undefined && typeof value !== \"boolean\") {\n throw new Error(`${msg(loc)} must be a boolean, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertObject(\n loc: GeneralPath,\n value: unknown,\n): { readonly [key: string]: unknown } | void {\n if (\n value !== undefined &&\n (typeof value !== \"object\" || Array.isArray(value) || !value)\n ) {\n throw new Error(`${msg(loc)} must be an object, or undefined`);\n }\n // @ts-expect-error todo(flow->ts) value is still typed as unknown, also assert function typically should not return a value\n return value;\n}\n\nexport function assertArray(\n loc: GeneralPath,\n value: Array | undefined | null,\n): ReadonlyArray | undefined | null {\n if (value != null && !Array.isArray(value)) {\n throw new Error(`${msg(loc)} must be an array, or undefined`);\n }\n return value;\n}\n\nexport function assertIgnoreList(\n loc: OptionPath,\n value: unknown[] | undefined,\n): IgnoreList | void {\n const arr = assertArray(loc, value);\n if (arr) {\n arr.forEach((item, i) => assertIgnoreItem(access(loc, i), item));\n }\n // @ts-expect-error todo(flow->ts)\n return arr;\n}\nfunction assertIgnoreItem(loc: GeneralPath, value: unknown): IgnoreItem {\n if (\n typeof value !== \"string\" &&\n typeof value !== \"function\" &&\n !(value instanceof RegExp)\n ) {\n throw new Error(\n `${msg(\n loc,\n )} must be an array of string/Function/RegExp values, or undefined`,\n );\n }\n return value as IgnoreItem;\n}\n\nexport function assertConfigApplicableTest(\n loc: OptionPath,\n value: unknown,\n): ConfigApplicableTest | void {\n if (value === undefined) {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a string/Function/RegExp, or an array of those`,\n );\n }\n return value as ConfigApplicableTest;\n}\n\nfunction checkValidTest(value: unknown): value is string | Function | RegExp {\n return (\n typeof value === \"string\" ||\n typeof value === \"function\" ||\n value instanceof RegExp\n );\n}\n\nexport function assertConfigFileSearch(\n loc: OptionPath,\n value: unknown,\n): ConfigFileSearch | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\"\n ) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string, ` +\n `got ${JSON.stringify(value)}`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBabelrcSearch(\n loc: OptionPath,\n value: unknown,\n): BabelrcSearch | void {\n if (value === undefined || typeof value === \"boolean\") {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` +\n `or an array of those, got ${JSON.stringify(value as any)}`,\n );\n }\n return value as BabelrcSearch;\n}\n\nexport function assertPluginList(\n loc: OptionPath,\n value: unknown[] | null | undefined,\n): PluginList | void {\n const arr = assertArray(loc, value);\n if (arr) {\n // Loop instead of using `.map` in order to preserve object identity\n // for plugin array for use during config chain processing.\n arr.forEach((item, i) => assertPluginItem(access(loc, i), item));\n }\n return arr as any;\n}\nfunction assertPluginItem(loc: GeneralPath, value: unknown): PluginItem {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n throw new Error(`${msg(loc)} must include an object`);\n }\n\n if (value.length > 3) {\n throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`);\n }\n\n assertPluginTarget(access(loc, 0), value[0]);\n\n if (value.length > 1) {\n const opts = value[1];\n if (\n opts !== undefined &&\n opts !== false &&\n (typeof opts !== \"object\" || Array.isArray(opts) || opts === null)\n ) {\n throw new Error(\n `${msg(access(loc, 1))} must be an object, false, or undefined`,\n );\n }\n }\n if (value.length === 3) {\n const name = value[2];\n if (name !== undefined && typeof name !== \"string\") {\n throw new Error(\n `${msg(access(loc, 2))} must be a string, or undefined`,\n );\n }\n }\n } else {\n assertPluginTarget(loc, value);\n }\n\n // @ts-expect-error todo(flow->ts)\n return value;\n}\nfunction assertPluginTarget(loc: GeneralPath, value: unknown): PluginTarget {\n if (\n (typeof value !== \"object\" || !value) &&\n typeof value !== \"string\" &&\n typeof value !== \"function\"\n ) {\n throw new Error(`${msg(loc)} must be a string, object, function`);\n }\n return value;\n}\n\nexport function assertTargets(\n loc: GeneralPath,\n value: any,\n): TargetsListOrObject {\n if (isBrowsersQueryValid(value)) return value;\n\n if (typeof value !== \"object\" || !value || Array.isArray(value)) {\n throw new Error(\n `${msg(loc)} must be a string, an array of strings or an object`,\n );\n }\n\n const browsersLoc = access(loc, \"browsers\");\n const esmodulesLoc = access(loc, \"esmodules\");\n\n assertBrowsersList(browsersLoc, value.browsers);\n assertBoolean(esmodulesLoc, value.esmodules);\n\n for (const key of Object.keys(value)) {\n const val = value[key];\n const subLoc = access(loc, key);\n\n if (key === \"esmodules\") assertBoolean(subLoc, val);\n else if (key === \"browsers\") assertBrowsersList(subLoc, val);\n else if (!Object.hasOwnProperty.call(TargetNames, key)) {\n const validTargets = Object.keys(TargetNames).join(\", \");\n throw new Error(\n `${msg(\n subLoc,\n )} is not a valid target. Supported targets are ${validTargets}`,\n );\n } else assertBrowserVersion(subLoc, val);\n }\n\n return value;\n}\n\nfunction assertBrowsersList(loc: GeneralPath, value: unknown) {\n if (value !== undefined && !isBrowsersQueryValid(value)) {\n throw new Error(\n `${msg(loc)} must be undefined, a string or an array of strings`,\n );\n }\n}\n\nfunction assertBrowserVersion(loc: GeneralPath, value: unknown) {\n if (typeof value === \"number\" && Math.round(value) === value) return;\n if (typeof value === \"string\") return;\n\n throw new Error(`${msg(loc)} must be a string or an integer number`);\n}\n\nexport function assertAssumptions(\n loc: GeneralPath,\n value: { [key: string]: unknown },\n): { [name: string]: boolean } | void {\n if (value === undefined) return;\n\n if (typeof value !== \"object\" || value === null) {\n throw new Error(`${msg(loc)} must be an object or undefined.`);\n }\n\n // todo(flow->ts): remove any\n let root: any = loc;\n do {\n root = root.parent;\n } while (root.type !== \"root\");\n const inPreset = root.source === \"preset\";\n\n for (const name of Object.keys(value)) {\n const subLoc = access(loc, name);\n if (!assumptionsNames.has(name as AssumptionName)) {\n throw new Error(`${msg(subLoc)} is not a supported assumption.`);\n }\n if (typeof value[name] !== \"boolean\") {\n throw new Error(`${msg(subLoc)} must be a boolean.`);\n }\n if (inPreset && value[name] === false) {\n throw new Error(\n `${msg(subLoc)} cannot be set to 'false' inside presets.`,\n );\n }\n }\n\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/options.js b/node_modules/@babel/core/lib/config/validation/options.js new file mode 100755 index 0000000..144b792 --- /dev/null +++ b/node_modules/@babel/core/lib/config/validation/options.js @@ -0,0 +1,193 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.assumptionsNames = void 0; +exports.checkNoUnwrappedItemOptionPairs = checkNoUnwrappedItemOptionPairs; +exports.validate = validate; +var _removed = require("./removed"); +var _optionAssertions = require("./option-assertions"); +var _configError = require("../../errors/config-error"); +const ROOT_VALIDATORS = { + cwd: _optionAssertions.assertString, + root: _optionAssertions.assertString, + rootMode: _optionAssertions.assertRootMode, + configFile: _optionAssertions.assertConfigFileSearch, + caller: _optionAssertions.assertCallerMetadata, + filename: _optionAssertions.assertString, + filenameRelative: _optionAssertions.assertString, + code: _optionAssertions.assertBoolean, + ast: _optionAssertions.assertBoolean, + cloneInputAst: _optionAssertions.assertBoolean, + envName: _optionAssertions.assertString +}; +const BABELRC_VALIDATORS = { + babelrc: _optionAssertions.assertBoolean, + babelrcRoots: _optionAssertions.assertBabelrcSearch +}; +const NONPRESET_VALIDATORS = { + extends: _optionAssertions.assertString, + ignore: _optionAssertions.assertIgnoreList, + only: _optionAssertions.assertIgnoreList, + targets: _optionAssertions.assertTargets, + browserslistConfigFile: _optionAssertions.assertConfigFileSearch, + browserslistEnv: _optionAssertions.assertString +}; +const COMMON_VALIDATORS = { + inputSourceMap: _optionAssertions.assertInputSourceMap, + presets: _optionAssertions.assertPluginList, + plugins: _optionAssertions.assertPluginList, + passPerPreset: _optionAssertions.assertBoolean, + assumptions: _optionAssertions.assertAssumptions, + env: assertEnvSet, + overrides: assertOverridesList, + test: _optionAssertions.assertConfigApplicableTest, + include: _optionAssertions.assertConfigApplicableTest, + exclude: _optionAssertions.assertConfigApplicableTest, + retainLines: _optionAssertions.assertBoolean, + comments: _optionAssertions.assertBoolean, + shouldPrintComment: _optionAssertions.assertFunction, + compact: _optionAssertions.assertCompact, + minified: _optionAssertions.assertBoolean, + auxiliaryCommentBefore: _optionAssertions.assertString, + auxiliaryCommentAfter: _optionAssertions.assertString, + sourceType: _optionAssertions.assertSourceType, + wrapPluginVisitorMethod: _optionAssertions.assertFunction, + highlightCode: _optionAssertions.assertBoolean, + sourceMaps: _optionAssertions.assertSourceMaps, + sourceMap: _optionAssertions.assertSourceMaps, + sourceFileName: _optionAssertions.assertString, + sourceRoot: _optionAssertions.assertString, + parserOpts: _optionAssertions.assertObject, + generatorOpts: _optionAssertions.assertObject +}; +{ + Object.assign(COMMON_VALIDATORS, { + getModuleId: _optionAssertions.assertFunction, + moduleRoot: _optionAssertions.assertString, + moduleIds: _optionAssertions.assertBoolean, + moduleId: _optionAssertions.assertString + }); +} +const knownAssumptions = ["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "objectRestNoSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"]; +const assumptionsNames = new Set(knownAssumptions); +exports.assumptionsNames = assumptionsNames; +function getSource(loc) { + return loc.type === "root" ? loc.source : getSource(loc.parent); +} +function validate(type, opts, filename) { + try { + return validateNested({ + type: "root", + source: type + }, opts); + } catch (error) { + const configError = new _configError.default(error.message, filename); + if (error.code) configError.code = error.code; + throw configError; + } +} +function validateNested(loc, opts) { + const type = getSource(loc); + assertNoDuplicateSourcemap(opts); + Object.keys(opts).forEach(key => { + const optLoc = { + type: "option", + name: key, + parent: loc + }; + if (type === "preset" && NONPRESET_VALIDATORS[key]) { + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in preset options`); + } + if (type !== "arguments" && ROOT_VALIDATORS[key]) { + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options`); + } + if (type !== "arguments" && type !== "configfile" && BABELRC_VALIDATORS[key]) { + if (type === "babelrcfile" || type === "extendsfile") { + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`); + } + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options, or babel.config.js/config file options`); + } + const validator = COMMON_VALIDATORS[key] || NONPRESET_VALIDATORS[key] || BABELRC_VALIDATORS[key] || ROOT_VALIDATORS[key] || throwUnknownError; + validator(optLoc, opts[key]); + }); + return opts; +} +function throwUnknownError(loc) { + const key = loc.name; + if (_removed.default[key]) { + const { + message, + version = 5 + } = _removed.default[key]; + throw new Error(`Using removed Babel ${version} option: ${(0, _optionAssertions.msg)(loc)} - ${message}`); + } else { + const unknownOptErr = new Error(`Unknown option: ${(0, _optionAssertions.msg)(loc)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`); + unknownOptErr.code = "BABEL_UNKNOWN_OPTION"; + throw unknownOptErr; + } +} +function has(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} +function assertNoDuplicateSourcemap(opts) { + if (has(opts, "sourceMap") && has(opts, "sourceMaps")) { + throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both"); + } +} +function assertEnvSet(loc, value) { + if (loc.parent.type === "env") { + throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside of another .env block`); + } + const parent = loc.parent; + const obj = (0, _optionAssertions.assertObject)(loc, value); + if (obj) { + for (const envName of Object.keys(obj)) { + const env = (0, _optionAssertions.assertObject)((0, _optionAssertions.access)(loc, envName), obj[envName]); + if (!env) continue; + const envLoc = { + type: "env", + name: envName, + parent + }; + validateNested(envLoc, env); + } + } + return obj; +} +function assertOverridesList(loc, value) { + if (loc.parent.type === "env") { + throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .env block`); + } + if (loc.parent.type === "overrides") { + throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .overrides block`); + } + const parent = loc.parent; + const arr = (0, _optionAssertions.assertArray)(loc, value); + if (arr) { + for (const [index, item] of arr.entries()) { + const objLoc = (0, _optionAssertions.access)(loc, index); + const env = (0, _optionAssertions.assertObject)(objLoc, item); + if (!env) throw new Error(`${(0, _optionAssertions.msg)(objLoc)} must be an object`); + const overridesLoc = { + type: "overrides", + index, + parent + }; + validateNested(overridesLoc, env); + } + } + return arr; +} +function checkNoUnwrappedItemOptionPairs(items, index, type, e) { + if (index === 0) return; + const lastItem = items[index - 1]; + const thisItem = items[index]; + if (lastItem.file && lastItem.options === undefined && typeof thisItem.value === "object") { + e.message += `\n- Maybe you meant to use\n` + `"${type}s": [\n ["${lastItem.file.request}", ${JSON.stringify(thisItem.value, undefined, 2)}]\n]\n` + `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`; + } +} +0 && 0; + +//# sourceMappingURL=options.js.map diff --git a/node_modules/@babel/core/lib/config/validation/options.js.map b/node_modules/@babel/core/lib/config/validation/options.js.map new file mode 100755 index 0000000..5e2d81e --- /dev/null +++ b/node_modules/@babel/core/lib/config/validation/options.js.map @@ -0,0 +1 @@ +{"version":3,"names":["ROOT_VALIDATORS","cwd","assertString","root","rootMode","assertRootMode","configFile","assertConfigFileSearch","caller","assertCallerMetadata","filename","filenameRelative","code","assertBoolean","ast","cloneInputAst","envName","BABELRC_VALIDATORS","babelrc","babelrcRoots","assertBabelrcSearch","NONPRESET_VALIDATORS","extends","ignore","assertIgnoreList","only","targets","assertTargets","browserslistConfigFile","browserslistEnv","COMMON_VALIDATORS","inputSourceMap","assertInputSourceMap","presets","assertPluginList","plugins","passPerPreset","assumptions","assertAssumptions","env","assertEnvSet","overrides","assertOverridesList","test","assertConfigApplicableTest","include","exclude","retainLines","comments","shouldPrintComment","assertFunction","compact","assertCompact","minified","auxiliaryCommentBefore","auxiliaryCommentAfter","sourceType","assertSourceType","wrapPluginVisitorMethod","highlightCode","sourceMaps","assertSourceMaps","sourceMap","sourceFileName","sourceRoot","parserOpts","assertObject","generatorOpts","Object","assign","getModuleId","moduleRoot","moduleIds","moduleId","knownAssumptions","assumptionsNames","Set","getSource","loc","type","source","parent","validate","opts","validateNested","error","configError","ConfigError","message","assertNoDuplicateSourcemap","keys","forEach","key","optLoc","name","Error","msg","validator","throwUnknownError","removed","version","unknownOptErr","has","obj","prototype","hasOwnProperty","call","value","access","envLoc","arr","assertArray","index","item","entries","objLoc","overridesLoc","checkNoUnwrappedItemOptionPairs","items","e","lastItem","thisItem","file","options","undefined","request","JSON","stringify"],"sources":["../../../src/config/validation/options.ts"],"sourcesContent":["import type { InputTargets, Targets } from \"@babel/helper-compilation-targets\";\n\nimport type { ConfigItem } from \"../item\";\nimport type Plugin from \"../plugin\";\n\nimport removed from \"./removed\";\nimport {\n msg,\n access,\n assertString,\n assertBoolean,\n assertObject,\n assertArray,\n assertCallerMetadata,\n assertInputSourceMap,\n assertIgnoreList,\n assertPluginList,\n assertConfigApplicableTest,\n assertConfigFileSearch,\n assertBabelrcSearch,\n assertFunction,\n assertRootMode,\n assertSourceMaps,\n assertCompact,\n assertSourceType,\n assertTargets,\n assertAssumptions,\n} from \"./option-assertions\";\nimport type { ValidatorSet, Validator, OptionPath } from \"./option-assertions\";\nimport type { UnloadedDescriptor } from \"../config-descriptors\";\nimport type { ParserOptions } from \"@babel/parser\";\nimport type { GeneratorOptions } from \"@babel/generator\";\nimport ConfigError from \"../../errors/config-error\";\n\nconst ROOT_VALIDATORS: ValidatorSet = {\n cwd: assertString as Validator,\n root: assertString as Validator,\n rootMode: assertRootMode as Validator,\n configFile: assertConfigFileSearch as Validator<\n ValidatedOptions[\"configFile\"]\n >,\n\n caller: assertCallerMetadata as Validator,\n filename: assertString as Validator,\n filenameRelative: assertString as Validator<\n ValidatedOptions[\"filenameRelative\"]\n >,\n code: assertBoolean as Validator,\n ast: assertBoolean as Validator,\n\n cloneInputAst: assertBoolean as Validator,\n\n envName: assertString as Validator,\n};\n\nconst BABELRC_VALIDATORS: ValidatorSet = {\n babelrc: assertBoolean as Validator,\n babelrcRoots: assertBabelrcSearch as Validator<\n ValidatedOptions[\"babelrcRoots\"]\n >,\n};\n\nconst NONPRESET_VALIDATORS: ValidatorSet = {\n extends: assertString as Validator,\n ignore: assertIgnoreList as Validator,\n only: assertIgnoreList as Validator,\n\n targets: assertTargets as Validator,\n browserslistConfigFile: assertConfigFileSearch as Validator<\n ValidatedOptions[\"browserslistConfigFile\"]\n >,\n browserslistEnv: assertString as Validator<\n ValidatedOptions[\"browserslistEnv\"]\n >,\n};\n\nconst COMMON_VALIDATORS: ValidatorSet = {\n // TODO: Should 'inputSourceMap' be moved to be a root-only option?\n // We may want a boolean-only version to be a common option, with the\n // object only allowed as a root config argument.\n inputSourceMap: assertInputSourceMap as Validator<\n ValidatedOptions[\"inputSourceMap\"]\n >,\n presets: assertPluginList as Validator,\n plugins: assertPluginList as Validator,\n passPerPreset: assertBoolean as Validator,\n assumptions: assertAssumptions as Validator,\n\n env: assertEnvSet as Validator,\n overrides: assertOverridesList as Validator,\n\n // We could limit these to 'overrides' blocks, but it's not clear why we'd\n // bother, when the ability to limit a config to a specific set of files\n // is a fairly general useful feature.\n test: assertConfigApplicableTest as Validator,\n include: assertConfigApplicableTest as Validator,\n exclude: assertConfigApplicableTest as Validator,\n\n retainLines: assertBoolean as Validator,\n comments: assertBoolean as Validator,\n shouldPrintComment: assertFunction as Validator<\n ValidatedOptions[\"shouldPrintComment\"]\n >,\n compact: assertCompact as Validator,\n minified: assertBoolean as Validator,\n auxiliaryCommentBefore: assertString as Validator<\n ValidatedOptions[\"auxiliaryCommentBefore\"]\n >,\n auxiliaryCommentAfter: assertString as Validator<\n ValidatedOptions[\"auxiliaryCommentAfter\"]\n >,\n sourceType: assertSourceType as Validator,\n wrapPluginVisitorMethod: assertFunction as Validator<\n ValidatedOptions[\"wrapPluginVisitorMethod\"]\n >,\n highlightCode: assertBoolean as Validator,\n sourceMaps: assertSourceMaps as Validator,\n sourceMap: assertSourceMaps as Validator,\n sourceFileName: assertString as Validator,\n sourceRoot: assertString as Validator,\n parserOpts: assertObject as Validator,\n generatorOpts: assertObject as Validator,\n};\nif (!process.env.BABEL_8_BREAKING) {\n Object.assign(COMMON_VALIDATORS, {\n getModuleId: assertFunction,\n moduleRoot: assertString,\n moduleIds: assertBoolean,\n moduleId: assertString,\n });\n}\n\nexport type InputOptions = ValidatedOptions;\n\nexport type ValidatedOptions = {\n cwd?: string;\n filename?: string;\n filenameRelative?: string;\n babelrc?: boolean;\n babelrcRoots?: BabelrcSearch;\n configFile?: ConfigFileSearch;\n root?: string;\n rootMode?: RootMode;\n code?: boolean;\n ast?: boolean;\n cloneInputAst?: boolean;\n inputSourceMap?: RootInputSourceMapOption;\n envName?: string;\n caller?: CallerMetadata;\n extends?: string;\n env?: EnvSet;\n ignore?: IgnoreList;\n only?: IgnoreList;\n overrides?: OverridesList;\n // Generally verify if a given config object should be applied to the given file.\n test?: ConfigApplicableTest;\n include?: ConfigApplicableTest;\n exclude?: ConfigApplicableTest;\n presets?: PluginList;\n plugins?: PluginList;\n passPerPreset?: boolean;\n assumptions?: {\n [name: string]: boolean;\n };\n // browserslists-related options\n targets?: TargetsListOrObject;\n browserslistConfigFile?: ConfigFileSearch;\n browserslistEnv?: string;\n // Options for @babel/generator\n retainLines?: boolean;\n comments?: boolean;\n shouldPrintComment?: Function;\n compact?: CompactOption;\n minified?: boolean;\n auxiliaryCommentBefore?: string;\n auxiliaryCommentAfter?: string;\n // Parser\n sourceType?: SourceTypeOption;\n wrapPluginVisitorMethod?: Function;\n highlightCode?: boolean;\n // Sourcemap generation options.\n sourceMaps?: SourceMapsOption;\n sourceMap?: SourceMapsOption;\n sourceFileName?: string;\n sourceRoot?: string;\n // Deprecate top level parserOpts\n parserOpts?: ParserOptions;\n // Deprecate top level generatorOpts\n generatorOpts?: GeneratorOptions;\n};\n\nexport type NormalizedOptions = {\n readonly targets: Targets;\n} & Omit;\n\nexport type CallerMetadata = {\n // If 'caller' is specified, require that the name is given for debugging\n // messages.\n name: string;\n};\nexport type EnvSet = {\n [x: string]: T;\n};\nexport type IgnoreItem =\n | string\n | RegExp\n | ((\n path: string | undefined,\n context: { dirname: string; caller: CallerMetadata; envName: string },\n ) => unknown);\nexport type IgnoreList = ReadonlyArray;\n\nexport type PluginOptions = object | void | false;\nexport type PluginTarget = string | object | Function;\nexport type PluginItem =\n | ConfigItem\n | Plugin\n | PluginTarget\n | [PluginTarget, PluginOptions]\n | [PluginTarget, PluginOptions, string | void];\nexport type PluginList = ReadonlyArray;\n\nexport type OverridesList = Array;\nexport type ConfigApplicableTest = IgnoreItem | Array;\n\nexport type ConfigFileSearch = string | boolean;\nexport type BabelrcSearch = boolean | IgnoreItem | IgnoreList;\nexport type SourceMapsOption = boolean | \"inline\" | \"both\";\nexport type SourceTypeOption = \"module\" | \"script\" | \"unambiguous\";\nexport type CompactOption = boolean | \"auto\";\nexport type RootInputSourceMapOption = {} | boolean;\nexport type RootMode = \"root\" | \"upward\" | \"upward-optional\";\n\nexport type TargetsListOrObject =\n | Targets\n | InputTargets\n | InputTargets[\"browsers\"];\n\nexport type OptionsSource =\n | \"arguments\"\n | \"configfile\"\n | \"babelrcfile\"\n | \"extendsfile\"\n | \"preset\"\n | \"plugin\";\n\nexport type RootPath = Readonly<{\n type: \"root\";\n source: OptionsSource;\n}>;\n\ntype OverridesPath = Readonly<{\n type: \"overrides\";\n index: number;\n parent: RootPath;\n}>;\n\ntype EnvPath = Readonly<{\n type: \"env\";\n name: string;\n parent: RootPath | OverridesPath;\n}>;\n\nexport type NestingPath = RootPath | OverridesPath | EnvPath;\n\nconst knownAssumptions = [\n \"arrayLikeIsIterable\",\n \"constantReexports\",\n \"constantSuper\",\n \"enumerableModuleMeta\",\n \"ignoreFunctionLength\",\n \"ignoreToPrimitiveHint\",\n \"iterableIsArray\",\n \"mutableTemplateObject\",\n \"noClassCalls\",\n \"noDocumentAll\",\n \"noIncompleteNsImportDetection\",\n \"noNewArrows\",\n \"objectRestNoSymbols\",\n \"privateFieldsAsProperties\",\n \"pureGetters\",\n \"setClassMethods\",\n \"setComputedProperties\",\n \"setPublicClassFields\",\n \"setSpreadProperties\",\n \"skipForOfIteratorClosing\",\n \"superIsCallableConstructor\",\n] as const;\nexport type AssumptionName = typeof knownAssumptions[number];\nexport const assumptionsNames = new Set(knownAssumptions);\n\nfunction getSource(loc: NestingPath): OptionsSource {\n return loc.type === \"root\" ? loc.source : getSource(loc.parent);\n}\n\nexport function validate(\n type: OptionsSource,\n opts: {},\n filename?: string,\n): ValidatedOptions {\n try {\n return validateNested(\n {\n type: \"root\",\n source: type,\n },\n opts,\n );\n } catch (error) {\n const configError = new ConfigError(error.message, filename);\n // @ts-expect-error TODO: .code is not defined on ConfigError or Error\n if (error.code) configError.code = error.code;\n throw configError;\n }\n}\n\nfunction validateNested(loc: NestingPath, opts: { [key: string]: unknown }) {\n const type = getSource(loc);\n\n assertNoDuplicateSourcemap(opts);\n\n Object.keys(opts).forEach((key: string) => {\n const optLoc = {\n type: \"option\",\n name: key,\n parent: loc,\n } as const;\n\n if (type === \"preset\" && NONPRESET_VALIDATORS[key]) {\n throw new Error(`${msg(optLoc)} is not allowed in preset options`);\n }\n if (type !== \"arguments\" && ROOT_VALIDATORS[key]) {\n throw new Error(\n `${msg(optLoc)} is only allowed in root programmatic options`,\n );\n }\n if (\n type !== \"arguments\" &&\n type !== \"configfile\" &&\n BABELRC_VALIDATORS[key]\n ) {\n if (type === \"babelrcfile\" || type === \"extendsfile\") {\n throw new Error(\n `${msg(\n optLoc,\n )} is not allowed in .babelrc or \"extends\"ed files, only in root programmatic options, ` +\n `or babel.config.js/config file options`,\n );\n }\n\n throw new Error(\n `${msg(\n optLoc,\n )} is only allowed in root programmatic options, or babel.config.js/config file options`,\n );\n }\n\n const validator =\n COMMON_VALIDATORS[key] ||\n NONPRESET_VALIDATORS[key] ||\n BABELRC_VALIDATORS[key] ||\n ROOT_VALIDATORS[key] ||\n (throwUnknownError as Validator);\n\n validator(optLoc, opts[key]);\n });\n\n return opts;\n}\n\nfunction throwUnknownError(loc: OptionPath) {\n const key = loc.name;\n\n if (removed[key]) {\n const { message, version = 5 } = removed[key];\n\n throw new Error(\n `Using removed Babel ${version} option: ${msg(loc)} - ${message}`,\n );\n } else {\n // eslint-disable-next-line max-len\n const unknownOptErr = new Error(\n `Unknown option: ${msg(\n loc,\n )}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`,\n );\n // @ts-expect-error todo(flow->ts): consider creating something like BabelConfigError with code field in it\n unknownOptErr.code = \"BABEL_UNKNOWN_OPTION\";\n\n throw unknownOptErr;\n }\n}\n\nfunction has(obj: {}, key: string) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction assertNoDuplicateSourcemap(opts: {}): void {\n if (has(opts, \"sourceMap\") && has(opts, \"sourceMaps\")) {\n throw new Error(\".sourceMap is an alias for .sourceMaps, cannot use both\");\n }\n}\n\nfunction assertEnvSet(\n loc: OptionPath,\n value: unknown,\n): void | EnvSet {\n if (loc.parent.type === \"env\") {\n throw new Error(`${msg(loc)} is not allowed inside of another .env block`);\n }\n const parent: RootPath | OverridesPath = loc.parent;\n\n const obj = assertObject(loc, value);\n if (obj) {\n // Validate but don't copy the .env object in order to preserve\n // object identity for use during config chain processing.\n for (const envName of Object.keys(obj)) {\n const env = assertObject(access(loc, envName), obj[envName]);\n if (!env) continue;\n\n const envLoc = {\n type: \"env\",\n name: envName,\n parent,\n } as const;\n validateNested(envLoc, env);\n }\n }\n return obj;\n}\n\nfunction assertOverridesList(\n loc: OptionPath,\n value: unknown[],\n): undefined | OverridesList {\n if (loc.parent.type === \"env\") {\n throw new Error(`${msg(loc)} is not allowed inside an .env block`);\n }\n if (loc.parent.type === \"overrides\") {\n throw new Error(`${msg(loc)} is not allowed inside an .overrides block`);\n }\n const parent: RootPath = loc.parent;\n\n const arr = assertArray(loc, value);\n if (arr) {\n for (const [index, item] of arr.entries()) {\n const objLoc = access(loc, index);\n const env = assertObject(objLoc, item);\n if (!env) throw new Error(`${msg(objLoc)} must be an object`);\n\n const overridesLoc = {\n type: \"overrides\",\n index,\n parent,\n } as const;\n validateNested(overridesLoc, env);\n }\n }\n return arr as OverridesList;\n}\n\nexport function checkNoUnwrappedItemOptionPairs(\n items: Array,\n index: number,\n type: \"plugin\" | \"preset\",\n e: Error,\n): void {\n if (index === 0) return;\n\n const lastItem = items[index - 1];\n const thisItem = items[index];\n\n if (\n lastItem.file &&\n lastItem.options === undefined &&\n typeof thisItem.value === \"object\"\n ) {\n e.message +=\n `\\n- Maybe you meant to use\\n` +\n `\"${type}s\": [\\n [\"${lastItem.file.request}\", ${JSON.stringify(\n thisItem.value,\n undefined,\n 2,\n )}]\\n]\\n` +\n `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`;\n }\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/plugins.js b/node_modules/@babel/core/lib/config/validation/plugins.js new file mode 100755 index 0000000..6ea3a0d --- /dev/null +++ b/node_modules/@babel/core/lib/config/validation/plugins.js @@ -0,0 +1,64 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.validatePluginObject = validatePluginObject; +var _optionAssertions = require("./option-assertions"); +const VALIDATORS = { + name: _optionAssertions.assertString, + manipulateOptions: _optionAssertions.assertFunction, + pre: _optionAssertions.assertFunction, + post: _optionAssertions.assertFunction, + inherits: _optionAssertions.assertFunction, + visitor: assertVisitorMap, + parserOverride: _optionAssertions.assertFunction, + generatorOverride: _optionAssertions.assertFunction +}; +function assertVisitorMap(loc, value) { + const obj = (0, _optionAssertions.assertObject)(loc, value); + if (obj) { + Object.keys(obj).forEach(prop => assertVisitorHandler(prop, obj[prop])); + if (obj.enter || obj.exit) { + throw new Error(`${(0, _optionAssertions.msg)(loc)} cannot contain catch-all "enter" or "exit" handlers. Please target individual nodes.`); + } + } + return obj; +} +function assertVisitorHandler(key, value) { + if (value && typeof value === "object") { + Object.keys(value).forEach(handler => { + if (handler !== "enter" && handler !== "exit") { + throw new Error(`.visitor["${key}"] may only have .enter and/or .exit handlers.`); + } + }); + } else if (typeof value !== "function") { + throw new Error(`.visitor["${key}"] must be a function`); + } + return value; +} +function validatePluginObject(obj) { + const rootPath = { + type: "root", + source: "plugin" + }; + Object.keys(obj).forEach(key => { + const validator = VALIDATORS[key]; + if (validator) { + const optLoc = { + type: "option", + name: key, + parent: rootPath + }; + validator(optLoc, obj[key]); + } else { + const invalidPluginPropertyError = new Error(`.${key} is not a valid Plugin property`); + invalidPluginPropertyError.code = "BABEL_UNKNOWN_PLUGIN_PROPERTY"; + throw invalidPluginPropertyError; + } + }); + return obj; +} +0 && 0; + +//# sourceMappingURL=plugins.js.map diff --git a/node_modules/@babel/core/lib/config/validation/plugins.js.map b/node_modules/@babel/core/lib/config/validation/plugins.js.map new file mode 100755 index 0000000..fbaf16e --- /dev/null +++ b/node_modules/@babel/core/lib/config/validation/plugins.js.map @@ -0,0 +1 @@ +{"version":3,"names":["VALIDATORS","name","assertString","manipulateOptions","assertFunction","pre","post","inherits","visitor","assertVisitorMap","parserOverride","generatorOverride","loc","value","obj","assertObject","Object","keys","forEach","prop","assertVisitorHandler","enter","exit","Error","msg","key","handler","validatePluginObject","rootPath","type","source","validator","optLoc","parent","invalidPluginPropertyError","code"],"sources":["../../../src/config/validation/plugins.ts"],"sourcesContent":["import {\n assertString,\n assertFunction,\n assertObject,\n msg,\n} from \"./option-assertions\";\n\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n RootPath,\n} from \"./option-assertions\";\nimport type { ParserOptions } from \"@babel/parser\";\nimport type { Visitor } from \"@babel/traverse\";\nimport type { ValidatedOptions } from \"./options\";\nimport type { File, PluginPass } from \"../../index\";\n\n// Note: The casts here are just meant to be static assertions to make sure\n// that the assertion functions actually assert that the value's type matches\n// the declared types.\nconst VALIDATORS: ValidatorSet = {\n name: assertString as Validator,\n manipulateOptions: assertFunction as Validator<\n PluginObject[\"manipulateOptions\"]\n >,\n pre: assertFunction as Validator,\n post: assertFunction as Validator,\n inherits: assertFunction as Validator,\n visitor: assertVisitorMap as Validator,\n\n parserOverride: assertFunction as Validator,\n generatorOverride: assertFunction as Validator<\n PluginObject[\"generatorOverride\"]\n >,\n};\n\nfunction assertVisitorMap(loc: OptionPath, value: unknown): Visitor {\n const obj = assertObject(loc, value);\n if (obj) {\n Object.keys(obj).forEach(prop => assertVisitorHandler(prop, obj[prop]));\n\n if (obj.enter || obj.exit) {\n throw new Error(\n `${msg(\n loc,\n )} cannot contain catch-all \"enter\" or \"exit\" handlers. Please target individual nodes.`,\n );\n }\n }\n return obj as Visitor;\n}\n\nfunction assertVisitorHandler(\n key: string,\n value: unknown,\n): VisitorHandler | void {\n if (value && typeof value === \"object\") {\n Object.keys(value).forEach((handler: string) => {\n if (handler !== \"enter\" && handler !== \"exit\") {\n throw new Error(\n `.visitor[\"${key}\"] may only have .enter and/or .exit handlers.`,\n );\n }\n });\n } else if (typeof value !== \"function\") {\n throw new Error(`.visitor[\"${key}\"] must be a function`);\n }\n\n return value as any;\n}\n\ntype VisitorHandler =\n | Function\n | {\n enter?: Function;\n exit?: Function;\n };\n\nexport type PluginObject = {\n name?: string;\n manipulateOptions?: (\n options: ValidatedOptions,\n parserOpts: ParserOptions,\n ) => void;\n pre?: (this: S, file: File) => void;\n post?: (this: S, file: File) => void;\n inherits?: Function;\n visitor?: Visitor;\n parserOverride?: Function;\n generatorOverride?: Function;\n};\n\nexport function validatePluginObject(obj: {\n [key: string]: unknown;\n}): PluginObject {\n const rootPath: RootPath = {\n type: \"root\",\n source: \"plugin\",\n };\n Object.keys(obj).forEach((key: string) => {\n const validator = VALIDATORS[key];\n\n if (validator) {\n const optLoc: OptionPath = {\n type: \"option\",\n name: key,\n parent: rootPath,\n };\n validator(optLoc, obj[key]);\n } else {\n const invalidPluginPropertyError = new Error(\n `.${key} is not a valid Plugin property`,\n );\n // @ts-expect-error todo(flow->ts) consider additing BabelConfigError with code field\n invalidPluginPropertyError.code = \"BABEL_UNKNOWN_PLUGIN_PROPERTY\";\n throw invalidPluginPropertyError;\n }\n });\n\n return obj as any;\n}\n"],"mappings":";;;;;;AAAA;AAqBA,MAAMA,UAAwB,GAAG;EAC/BC,IAAI,EAAEC,8BAA+C;EACrDC,iBAAiB,EAAEC,gCAElB;EACDC,GAAG,EAAED,gCAAgD;EACrDE,IAAI,EAAEF,gCAAiD;EACvDG,QAAQ,EAAEH,gCAAqD;EAC/DI,OAAO,EAAEC,gBAAsD;EAE/DC,cAAc,EAAEN,gCAA2D;EAC3EO,iBAAiB,EAAEP;AAGrB,CAAC;AAED,SAASK,gBAAgB,CAACG,GAAe,EAAEC,KAAc,EAAW;EAClE,MAAMC,GAAG,GAAG,IAAAC,8BAAY,EAACH,GAAG,EAAEC,KAAK,CAAC;EACpC,IAAIC,GAAG,EAAE;IACPE,MAAM,CAACC,IAAI,CAACH,GAAG,CAAC,CAACI,OAAO,CAACC,IAAI,IAAIC,oBAAoB,CAACD,IAAI,EAAEL,GAAG,CAACK,IAAI,CAAC,CAAC,CAAC;IAEvE,IAAIL,GAAG,CAACO,KAAK,IAAIP,GAAG,CAACQ,IAAI,EAAE;MACzB,MAAM,IAAIC,KAAK,CACZ,GAAE,IAAAC,qBAAG,EACJZ,GAAG,CACH,uFAAsF,CACzF;IACH;EACF;EACA,OAAOE,GAAG;AACZ;AAEA,SAASM,oBAAoB,CAC3BK,GAAW,EACXZ,KAAc,EACS;EACvB,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACtCG,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC,CAACK,OAAO,CAAEQ,OAAe,IAAK;MAC9C,IAAIA,OAAO,KAAK,OAAO,IAAIA,OAAO,KAAK,MAAM,EAAE;QAC7C,MAAM,IAAIH,KAAK,CACZ,aAAYE,GAAI,gDAA+C,CACjE;MACH;IACF,CAAC,CAAC;EACJ,CAAC,MAAM,IAAI,OAAOZ,KAAK,KAAK,UAAU,EAAE;IACtC,MAAM,IAAIU,KAAK,CAAE,aAAYE,GAAI,uBAAsB,CAAC;EAC1D;EAEA,OAAOZ,KAAK;AACd;AAuBO,SAASc,oBAAoB,CAACb,GAEpC,EAAgB;EACf,MAAMc,QAAkB,GAAG;IACzBC,IAAI,EAAE,MAAM;IACZC,MAAM,EAAE;EACV,CAAC;EACDd,MAAM,CAACC,IAAI,CAACH,GAAG,CAAC,CAACI,OAAO,CAAEO,GAAW,IAAK;IACxC,MAAMM,SAAS,GAAG/B,UAAU,CAACyB,GAAG,CAAC;IAEjC,IAAIM,SAAS,EAAE;MACb,MAAMC,MAAkB,GAAG;QACzBH,IAAI,EAAE,QAAQ;QACd5B,IAAI,EAAEwB,GAAG;QACTQ,MAAM,EAAEL;MACV,CAAC;MACDG,SAAS,CAACC,MAAM,EAAElB,GAAG,CAACW,GAAG,CAAC,CAAC;IAC7B,CAAC,MAAM;MACL,MAAMS,0BAA0B,GAAG,IAAIX,KAAK,CACzC,IAAGE,GAAI,iCAAgC,CACzC;MAEDS,0BAA0B,CAACC,IAAI,GAAG,+BAA+B;MACjE,MAAMD,0BAA0B;IAClC;EACF,CAAC,CAAC;EAEF,OAAOpB,GAAG;AACZ;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/removed.js b/node_modules/@babel/core/lib/config/validation/removed.js new file mode 100755 index 0000000..57270ea --- /dev/null +++ b/node_modules/@babel/core/lib/config/validation/removed.js @@ -0,0 +1,69 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _default = { + auxiliaryComment: { + message: "Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`" + }, + blacklist: { + message: "Put the specific transforms you want in the `plugins` option" + }, + breakConfig: { + message: "This is not a necessary option in Babel 6" + }, + experimental: { + message: "Put the specific transforms you want in the `plugins` option" + }, + externalHelpers: { + message: "Use the `external-helpers` plugin instead. " + "Check out http://babeljs.io/docs/plugins/external-helpers/" + }, + extra: { + message: "" + }, + jsxPragma: { + message: "use the `pragma` option in the `react-jsx` plugin. " + "Check out http://babeljs.io/docs/plugins/transform-react-jsx/" + }, + loose: { + message: "Specify the `loose` option for the relevant plugin you are using " + "or use a preset that sets the option." + }, + metadataUsedHelpers: { + message: "Not required anymore as this is enabled by default" + }, + modules: { + message: "Use the corresponding module transform plugin in the `plugins` option. " + "Check out http://babeljs.io/docs/plugins/#modules" + }, + nonStandard: { + message: "Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. " + "Also check out the react preset http://babeljs.io/docs/plugins/preset-react/" + }, + optional: { + message: "Put the specific transforms you want in the `plugins` option" + }, + sourceMapName: { + message: "The `sourceMapName` option has been removed because it makes more sense for the " + "tooling that calls Babel to assign `map.file` themselves." + }, + stage: { + message: "Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets" + }, + whitelist: { + message: "Put the specific transforms you want in the `plugins` option" + }, + resolveModuleSource: { + version: 6, + message: "Use `babel-plugin-module-resolver@3`'s 'resolvePath' options" + }, + metadata: { + version: 6, + message: "Generated plugin metadata is always included in the output result" + }, + sourceMapTarget: { + version: 6, + message: "The `sourceMapTarget` option has been removed because it makes more sense for the tooling " + "that calls Babel to assign `map.file` themselves." + } +}; +exports.default = _default; +0 && 0; + +//# sourceMappingURL=removed.js.map diff --git a/node_modules/@babel/core/lib/config/validation/removed.js.map b/node_modules/@babel/core/lib/config/validation/removed.js.map new file mode 100755 index 0000000..da9a097 --- /dev/null +++ b/node_modules/@babel/core/lib/config/validation/removed.js.map @@ -0,0 +1 @@ +{"version":3,"names":["auxiliaryComment","message","blacklist","breakConfig","experimental","externalHelpers","extra","jsxPragma","loose","metadataUsedHelpers","modules","nonStandard","optional","sourceMapName","stage","whitelist","resolveModuleSource","version","metadata","sourceMapTarget"],"sources":["../../../src/config/validation/removed.ts"],"sourcesContent":["export default {\n auxiliaryComment: {\n message: \"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`\",\n },\n blacklist: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n breakConfig: {\n message: \"This is not a necessary option in Babel 6\",\n },\n experimental: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n externalHelpers: {\n message:\n \"Use the `external-helpers` plugin instead. \" +\n \"Check out http://babeljs.io/docs/plugins/external-helpers/\",\n },\n extra: {\n message: \"\",\n },\n jsxPragma: {\n message:\n \"use the `pragma` option in the `react-jsx` plugin. \" +\n \"Check out http://babeljs.io/docs/plugins/transform-react-jsx/\",\n },\n loose: {\n message:\n \"Specify the `loose` option for the relevant plugin you are using \" +\n \"or use a preset that sets the option.\",\n },\n metadataUsedHelpers: {\n message: \"Not required anymore as this is enabled by default\",\n },\n modules: {\n message:\n \"Use the corresponding module transform plugin in the `plugins` option. \" +\n \"Check out http://babeljs.io/docs/plugins/#modules\",\n },\n nonStandard: {\n message:\n \"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. \" +\n \"Also check out the react preset http://babeljs.io/docs/plugins/preset-react/\",\n },\n optional: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n sourceMapName: {\n message:\n \"The `sourceMapName` option has been removed because it makes more sense for the \" +\n \"tooling that calls Babel to assign `map.file` themselves.\",\n },\n stage: {\n message:\n \"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets\",\n },\n whitelist: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n\n resolveModuleSource: {\n version: 6,\n message: \"Use `babel-plugin-module-resolver@3`'s 'resolvePath' options\",\n },\n metadata: {\n version: 6,\n message:\n \"Generated plugin metadata is always included in the output result\",\n },\n sourceMapTarget: {\n version: 6,\n message:\n \"The `sourceMapTarget` option has been removed because it makes more sense for the tooling \" +\n \"that calls Babel to assign `map.file` themselves.\",\n },\n} as { [name: string]: { version?: number; message: string } };\n"],"mappings":";;;;;;eAAe;EACbA,gBAAgB,EAAE;IAChBC,OAAO,EAAE;EACX,CAAC;EACDC,SAAS,EAAE;IACTD,OAAO,EAAE;EACX,CAAC;EACDE,WAAW,EAAE;IACXF,OAAO,EAAE;EACX,CAAC;EACDG,YAAY,EAAE;IACZH,OAAO,EAAE;EACX,CAAC;EACDI,eAAe,EAAE;IACfJ,OAAO,EACL,6CAA6C,GAC7C;EACJ,CAAC;EACDK,KAAK,EAAE;IACLL,OAAO,EAAE;EACX,CAAC;EACDM,SAAS,EAAE;IACTN,OAAO,EACL,qDAAqD,GACrD;EACJ,CAAC;EACDO,KAAK,EAAE;IACLP,OAAO,EACL,mEAAmE,GACnE;EACJ,CAAC;EACDQ,mBAAmB,EAAE;IACnBR,OAAO,EAAE;EACX,CAAC;EACDS,OAAO,EAAE;IACPT,OAAO,EACL,yEAAyE,GACzE;EACJ,CAAC;EACDU,WAAW,EAAE;IACXV,OAAO,EACL,8EAA8E,GAC9E;EACJ,CAAC;EACDW,QAAQ,EAAE;IACRX,OAAO,EAAE;EACX,CAAC;EACDY,aAAa,EAAE;IACbZ,OAAO,EACL,kFAAkF,GAClF;EACJ,CAAC;EACDa,KAAK,EAAE;IACLb,OAAO,EACL;EACJ,CAAC;EACDc,SAAS,EAAE;IACTd,OAAO,EAAE;EACX,CAAC;EAEDe,mBAAmB,EAAE;IACnBC,OAAO,EAAE,CAAC;IACVhB,OAAO,EAAE;EACX,CAAC;EACDiB,QAAQ,EAAE;IACRD,OAAO,EAAE,CAAC;IACVhB,OAAO,EACL;EACJ,CAAC;EACDkB,eAAe,EAAE;IACfF,OAAO,EAAE,CAAC;IACVhB,OAAO,EACL,4FAA4F,GAC5F;EACJ;AACF,CAAC;AAAA;AAAA"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/errors/config-error.js b/node_modules/@babel/core/lib/errors/config-error.js new file mode 100755 index 0000000..1ee56a8 --- /dev/null +++ b/node_modules/@babel/core/lib/errors/config-error.js @@ -0,0 +1,18 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _rewriteStackTrace = require("./rewrite-stack-trace"); +class ConfigError extends Error { + constructor(message, filename) { + super(message); + (0, _rewriteStackTrace.expectedError)(this); + if (filename) (0, _rewriteStackTrace.injcectVirtualStackFrame)(this, filename); + } +} +exports.default = ConfigError; +0 && 0; + +//# sourceMappingURL=config-error.js.map diff --git a/node_modules/@babel/core/lib/errors/config-error.js.map b/node_modules/@babel/core/lib/errors/config-error.js.map new file mode 100755 index 0000000..3aaf90a --- /dev/null +++ b/node_modules/@babel/core/lib/errors/config-error.js.map @@ -0,0 +1 @@ +{"version":3,"names":["ConfigError","Error","constructor","message","filename","expectedError","injcectVirtualStackFrame"],"sources":["../../src/errors/config-error.ts"],"sourcesContent":["import { injcectVirtualStackFrame, expectedError } from \"./rewrite-stack-trace\";\n\nexport default class ConfigError extends Error {\n constructor(message: string, filename?: string) {\n super(message);\n expectedError(this);\n if (filename) injcectVirtualStackFrame(this, filename);\n }\n}\n"],"mappings":";;;;;;AAAA;AAEe,MAAMA,WAAW,SAASC,KAAK,CAAC;EAC7CC,WAAW,CAACC,OAAe,EAAEC,QAAiB,EAAE;IAC9C,KAAK,CAACD,OAAO,CAAC;IACd,IAAAE,gCAAa,EAAC,IAAI,CAAC;IACnB,IAAID,QAAQ,EAAE,IAAAE,2CAAwB,EAAC,IAAI,EAAEF,QAAQ,CAAC;EACxD;AACF;AAAC;AAAA"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js b/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js new file mode 100755 index 0000000..b07288b --- /dev/null +++ b/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js @@ -0,0 +1,99 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.beginHiddenCallStack = beginHiddenCallStack; +exports.endHiddenCallStack = endHiddenCallStack; +exports.expectedError = expectedError; +exports.injcectVirtualStackFrame = injcectVirtualStackFrame; + +const ErrorToString = Function.call.bind(Error.prototype.toString); +const SUPPORTED = !!Error.captureStackTrace; +const START_HIDNG = "startHiding - secret - don't use this - v1"; +const STOP_HIDNG = "stopHiding - secret - don't use this - v1"; +const expectedErrors = new WeakSet(); +const virtualFrames = new WeakMap(); +function CallSite(filename) { + return Object.create({ + isNative: () => false, + isConstructor: () => false, + isToplevel: () => true, + getFileName: () => filename, + getLineNumber: () => undefined, + getColumnNumber: () => undefined, + getFunctionName: () => undefined, + getMethodName: () => undefined, + getTypeName: () => undefined, + toString: () => filename + }); +} +function injcectVirtualStackFrame(error, filename) { + if (!SUPPORTED) return; + let frames = virtualFrames.get(error); + if (!frames) virtualFrames.set(error, frames = []); + frames.push(CallSite(filename)); + return error; +} +function expectedError(error) { + if (!SUPPORTED) return; + expectedErrors.add(error); + return error; +} +function beginHiddenCallStack(fn) { + if (!SUPPORTED) return fn; + return Object.defineProperty(function (...args) { + setupPrepareStackTrace(); + return fn(...args); + }, "name", { + value: STOP_HIDNG + }); +} +function endHiddenCallStack(fn) { + if (!SUPPORTED) return fn; + return Object.defineProperty(function (...args) { + return fn(...args); + }, "name", { + value: START_HIDNG + }); +} +function setupPrepareStackTrace() { + setupPrepareStackTrace = () => {}; + const { + prepareStackTrace = defaultPrepareStackTrace + } = Error; + + const MIN_STACK_TRACE_LIMIT = 50; + Error.stackTraceLimit && (Error.stackTraceLimit = Math.max(Error.stackTraceLimit, MIN_STACK_TRACE_LIMIT)); + Error.prepareStackTrace = function stackTraceRewriter(err, trace) { + let newTrace = []; + const isExpected = expectedErrors.has(err); + let status = isExpected ? "hiding" : "unknown"; + for (let i = 0; i < trace.length; i++) { + const name = trace[i].getFunctionName(); + if (name === START_HIDNG) { + status = "hiding"; + } else if (name === STOP_HIDNG) { + if (status === "hiding") { + status = "showing"; + if (virtualFrames.has(err)) { + newTrace.unshift(...virtualFrames.get(err)); + } + } else if (status === "unknown") { + newTrace = trace; + break; + } + } else if (status !== "hiding") { + newTrace.push(trace[i]); + } + } + return prepareStackTrace(err, newTrace); + }; +} +function defaultPrepareStackTrace(err, trace) { + if (trace.length === 0) return ErrorToString(err); + return `${ErrorToString(err)}\n at ${trace.join("\n at ")}`; +} +0 && 0; + +//# sourceMappingURL=rewrite-stack-trace.js.map diff --git a/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map b/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map new file mode 100755 index 0000000..f7e90cd --- /dev/null +++ b/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map @@ -0,0 +1 @@ +{"version":3,"names":["ErrorToString","Function","call","bind","Error","prototype","toString","SUPPORTED","captureStackTrace","START_HIDNG","STOP_HIDNG","expectedErrors","WeakSet","virtualFrames","WeakMap","CallSite","filename","Object","create","isNative","isConstructor","isToplevel","getFileName","getLineNumber","undefined","getColumnNumber","getFunctionName","getMethodName","getTypeName","injcectVirtualStackFrame","error","frames","get","set","push","expectedError","add","beginHiddenCallStack","fn","defineProperty","args","setupPrepareStackTrace","value","endHiddenCallStack","prepareStackTrace","defaultPrepareStackTrace","MIN_STACK_TRACE_LIMIT","stackTraceLimit","Math","max","stackTraceRewriter","err","trace","newTrace","isExpected","has","status","i","length","name","unshift","join"],"sources":["../../src/errors/rewrite-stack-trace.ts"],"sourcesContent":["/**\n * This file uses the iternal V8 Stack Trace API (https://v8.dev/docs/stack-trace-api)\n * to provide utilities to rewrite the stack trace.\n * When this API is not present, all the functions in this file become noops.\n *\n * beginHiddenCallStack(fn) and endHiddenCallStack(fn) wrap their parameter to\n * mark an hidden portion of the stack trace. The function passed to\n * beginHiddenCallStack is the first hidden function, while the function passed\n * to endHiddenCallStack is the first shown function.\n *\n * When an error is thrown _outside_ of the hidden zone, everything between\n * beginHiddenCallStack and endHiddenCallStack will not be shown.\n * If an error is thrown _inside_ the hidden zone, then the whole stack trace\n * will be visible: this is to avoid hiding real bugs.\n * However, if an error inside the hidden zone is expected, it can be marked\n * with the expectedError(error) function to keep the hidden frames hidden.\n *\n * Consider this call stack (the outer function is the bottom one):\n *\n * 1. a()\n * 2. endHiddenCallStack(b)()\n * 3. c()\n * 4. beginHiddenCallStack(d)()\n * 5. e()\n * 6. f()\n *\n * - If a() throws an error, then its shown call stack will be \"a, b, e, f\"\n * - If b() throws an error, then its shown call stack will be \"b, e, f\"\n * - If c() throws an expected error, then its shown call stack will be \"e, f\"\n * - If c() throws an unexpected error, then its shown call stack will be \"c, d, e, f\"\n * - If d() throws an expected error, then its shown call stack will be \"e, f\"\n * - If d() throws an unexpected error, then its shown call stack will be \"d, e, f\"\n * - If e() throws an error, then its shown call stack will be \"e, f\"\n *\n * Additionally, an error can inject additional \"virtual\" stack frames using the\n * injcectVirtualStackFrame(error, filename) function: those are injected as a\n * replacement of the hidden frames.\n * In the example above, if we called injcectVirtualStackFrame(err, \"h\") and\n * injcectVirtualStackFrame(err, \"i\") on the expected error thrown by c(), its\n * shown call stack would have been \"h, i, e, f\".\n * This can be useful, for example, to report config validation errors as if they\n * were directly thrown in the config file.\n */\n\nconst ErrorToString = Function.call.bind(Error.prototype.toString);\n\nconst SUPPORTED = !!Error.captureStackTrace;\n\nconst START_HIDNG = \"startHiding - secret - don't use this - v1\";\nconst STOP_HIDNG = \"stopHiding - secret - don't use this - v1\";\n\ntype CallSite = Parameters[1][number];\n\nconst expectedErrors = new WeakSet();\nconst virtualFrames = new WeakMap();\n\nfunction CallSite(filename: string): CallSite {\n // We need to use a prototype otherwise it breaks source-map-support's internals\n return Object.create({\n isNative: () => false,\n isConstructor: () => false,\n isToplevel: () => true,\n getFileName: () => filename,\n getLineNumber: () => undefined,\n getColumnNumber: () => undefined,\n getFunctionName: () => undefined,\n getMethodName: () => undefined,\n getTypeName: () => undefined,\n toString: () => filename,\n } as CallSite);\n}\n\nexport function injcectVirtualStackFrame(error: Error, filename: string) {\n if (!SUPPORTED) return;\n\n let frames = virtualFrames.get(error);\n if (!frames) virtualFrames.set(error, (frames = []));\n frames.push(CallSite(filename));\n\n return error;\n}\n\nexport function expectedError(error: Error) {\n if (!SUPPORTED) return;\n expectedErrors.add(error);\n return error;\n}\n\nexport function beginHiddenCallStack(\n fn: (...args: A) => R,\n) {\n if (!SUPPORTED) return fn;\n\n return Object.defineProperty(\n function (...args: A) {\n setupPrepareStackTrace();\n return fn(...args);\n },\n \"name\",\n { value: STOP_HIDNG },\n );\n}\n\nexport function endHiddenCallStack(\n fn: (...args: A) => R,\n) {\n if (!SUPPORTED) return fn;\n\n return Object.defineProperty(\n function (...args: A) {\n return fn(...args);\n },\n \"name\",\n { value: START_HIDNG },\n );\n}\n\nfunction setupPrepareStackTrace() {\n // @ts-expect-error This function is a singleton\n // eslint-disable-next-line no-func-assign\n setupPrepareStackTrace = () => {};\n\n const { prepareStackTrace = defaultPrepareStackTrace } = Error;\n\n // We add some extra frames to Error.stackTraceLimit, so that we can\n // always show some useful frames even after deleting ours.\n // STACK_TRACE_LIMIT_DELTA should be around the maximum expected number\n // of internal frames, and not too big because capturing the stack trace\n // is slow (this is why Error.stackTraceLimit does not default to Infinity!).\n // Increase it if needed.\n // However, we only do it if the user did not explicitly set it to 0.\n const MIN_STACK_TRACE_LIMIT = 50;\n Error.stackTraceLimit &&= Math.max(\n Error.stackTraceLimit,\n MIN_STACK_TRACE_LIMIT,\n );\n\n Error.prepareStackTrace = function stackTraceRewriter(err, trace) {\n let newTrace = [];\n\n const isExpected = expectedErrors.has(err);\n let status: \"showing\" | \"hiding\" | \"unknown\" = isExpected\n ? \"hiding\"\n : \"unknown\";\n for (let i = 0; i < trace.length; i++) {\n const name = trace[i].getFunctionName();\n if (name === START_HIDNG) {\n status = \"hiding\";\n } else if (name === STOP_HIDNG) {\n if (status === \"hiding\") {\n status = \"showing\";\n if (virtualFrames.has(err)) {\n newTrace.unshift(...virtualFrames.get(err));\n }\n } else if (status === \"unknown\") {\n // Unexpected internal error, show the full stack trace\n newTrace = trace;\n break;\n }\n } else if (status !== \"hiding\") {\n newTrace.push(trace[i]);\n }\n }\n\n return prepareStackTrace(err, newTrace);\n };\n}\n\nfunction defaultPrepareStackTrace(err: Error, trace: CallSite[]) {\n if (trace.length === 0) return ErrorToString(err);\n return `${ErrorToString(err)}\\n at ${trace.join(\"\\n at \")}`;\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/gensync-utils/async.js b/node_modules/@babel/core/lib/gensync-utils/async.js new file mode 100755 index 0000000..1a37dc2 --- /dev/null +++ b/node_modules/@babel/core/lib/gensync-utils/async.js @@ -0,0 +1,98 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.forwardAsync = forwardAsync; +exports.isAsync = void 0; +exports.isThenable = isThenable; +exports.maybeAsync = maybeAsync; +exports.waitFor = exports.onFirstPause = void 0; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +const runGenerator = _gensync()(function* (item) { + return yield* item; +}); + +const isAsync = _gensync()({ + sync: () => false, + errback: cb => cb(null, true) +}); + +exports.isAsync = isAsync; +function maybeAsync(fn, message) { + return _gensync()({ + sync(...args) { + const result = fn.apply(this, args); + if (isThenable(result)) throw new Error(message); + return result; + }, + async(...args) { + return Promise.resolve(fn.apply(this, args)); + } + }); +} +const withKind = _gensync()({ + sync: cb => cb("sync"), + async: function () { + var _ref = _asyncToGenerator(function* (cb) { + return cb("async"); + }); + return function async(_x) { + return _ref.apply(this, arguments); + }; + }() +}); + +function forwardAsync(action, cb) { + const g = _gensync()(action); + return withKind(kind => { + const adapted = g[kind]; + return cb(adapted); + }); +} + +const onFirstPause = _gensync()({ + name: "onFirstPause", + arity: 2, + sync: function (item) { + return runGenerator.sync(item); + }, + errback: function (item, firstPause, cb) { + let completed = false; + runGenerator.errback(item, (err, value) => { + completed = true; + cb(err, value); + }); + if (!completed) { + firstPause(); + } + } +}); + +exports.onFirstPause = onFirstPause; +const waitFor = _gensync()({ + sync: x => x, + async: function () { + var _ref2 = _asyncToGenerator(function* (x) { + return x; + }); + return function async(_x2) { + return _ref2.apply(this, arguments); + }; + }() +}); +exports.waitFor = waitFor; +function isThenable(val) { + return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function"; +} +0 && 0; + +//# sourceMappingURL=async.js.map diff --git a/node_modules/@babel/core/lib/gensync-utils/async.js.map b/node_modules/@babel/core/lib/gensync-utils/async.js.map new file mode 100755 index 0000000..1d57b57 --- /dev/null +++ b/node_modules/@babel/core/lib/gensync-utils/async.js.map @@ -0,0 +1 @@ +{"version":3,"names":["runGenerator","gensync","item","isAsync","sync","errback","cb","maybeAsync","fn","message","args","result","apply","isThenable","Error","async","Promise","resolve","withKind","forwardAsync","action","g","kind","adapted","onFirstPause","name","arity","firstPause","completed","err","value","waitFor","x","val","then"],"sources":["../../src/gensync-utils/async.ts"],"sourcesContent":["import gensync, { type Gensync, type Handler, type Callback } from \"gensync\";\n\ntype MaybePromise = T | Promise;\n\nconst runGenerator: {\n sync(gen: Handler): Return;\n async(gen: Handler): Promise;\n errback(gen: Handler, cb: Callback): void;\n} = gensync(function* (item: Handler): Handler {\n return yield* item;\n});\n\n// This Gensync returns true if the current execution context is\n// asynchronous, otherwise it returns false.\nexport const isAsync = gensync({\n sync: () => false,\n errback: cb => cb(null, true),\n});\n\n// This function wraps any functions (which could be either synchronous or\n// asynchronous) with a Gensync. If the wrapped function returns a promise\n// but the current execution context is synchronous, it will throw the\n// provided error.\n// This is used to handle user-provided functions which could be asynchronous.\nexport function maybeAsync(\n fn: (...args: Args) => Return,\n message: string,\n): Gensync {\n return gensync({\n sync(...args) {\n const result = fn.apply(this, args);\n if (isThenable(result)) throw new Error(message);\n return result;\n },\n async(...args) {\n return Promise.resolve(fn.apply(this, args));\n },\n });\n}\n\nconst withKind = gensync({\n sync: cb => cb(\"sync\"),\n async: async cb => cb(\"async\"),\n}) as (cb: (kind: \"sync\" | \"async\") => MaybePromise) => Handler;\n\n// This function wraps a generator (or a Gensync) into another function which,\n// when called, will run the provided generator in a sync or async way, depending\n// on the execution context where this forwardAsync function is called.\n// This is useful, for example, when passing a callback to a function which isn't\n// aware of gensync, but it only knows about synchronous and asynchronous functions.\n// An example is cache.using, which being exposed to the user must be as simple as\n// possible:\n// yield* forwardAsync(gensyncFn, wrappedFn =>\n// cache.using(x => {\n// // Here we don't know about gensync. wrappedFn is a\n// // normal sync or async function\n// return wrappedFn(x);\n// })\n// )\nexport function forwardAsync(\n action: (...args: Args) => Handler,\n cb: (\n adapted: (...args: Args) => MaybePromise,\n ) => MaybePromise,\n): Handler {\n const g = gensync(action);\n return withKind(kind => {\n const adapted = g[kind];\n return cb(adapted);\n });\n}\n\n// If the given generator is executed asynchronously, the first time that it\n// is paused (i.e. When it yields a gensync generator which can't be run\n// synchronously), call the \"firstPause\" callback.\nexport const onFirstPause = gensync<\n [gen: Handler, firstPause: () => void],\n unknown\n>({\n name: \"onFirstPause\",\n arity: 2,\n sync: function (item) {\n return runGenerator.sync(item);\n },\n errback: function (item, firstPause, cb) {\n let completed = false;\n\n runGenerator.errback(item, (err, value) => {\n completed = true;\n cb(err, value);\n });\n\n if (!completed) {\n firstPause();\n }\n },\n}) as (gen: Handler, firstPause: () => void) => Handler;\n\n// Wait for the given promise to be resolved\nexport const waitFor = gensync({\n sync: x => x,\n async: async x => x,\n}) as (p: T | Promise) => Handler;\n\nexport function isThenable(val: any): val is PromiseLike {\n return (\n !!val &&\n (typeof val === \"object\" || typeof val === \"function\") &&\n !!val.then &&\n typeof val.then === \"function\"\n );\n}\n"],"mappings":";;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA6E;AAAA;AAI7E,MAAMA,YAIL,GAAGC,UAAO,CAAC,WAAWC,IAAkB,EAAgB;EACvD,OAAO,OAAOA,IAAI;AACpB,CAAC,CAAC;;AAIK,MAAMC,OAAO,GAAGF,UAAO,CAAC;EAC7BG,IAAI,EAAE,MAAM,KAAK;EACjBC,OAAO,EAAEC,EAAE,IAAIA,EAAE,CAAC,IAAI,EAAE,IAAI;AAC9B,CAAC,CAAC;;AAAC;AAOI,SAASC,UAAU,CACxBC,EAA6B,EAC7BC,OAAe,EACQ;EACvB,OAAOR,UAAO,CAAC;IACbG,IAAI,CAAC,GAAGM,IAAI,EAAE;MACZ,MAAMC,MAAM,GAAGH,EAAE,CAACI,KAAK,CAAC,IAAI,EAAEF,IAAI,CAAC;MACnC,IAAIG,UAAU,CAACF,MAAM,CAAC,EAAE,MAAM,IAAIG,KAAK,CAACL,OAAO,CAAC;MAChD,OAAOE,MAAM;IACf,CAAC;IACDI,KAAK,CAAC,GAAGL,IAAI,EAAE;MACb,OAAOM,OAAO,CAACC,OAAO,CAACT,EAAE,CAACI,KAAK,CAAC,IAAI,EAAEF,IAAI,CAAC,CAAC;IAC9C;EACF,CAAC,CAAC;AACJ;AAEA,MAAMQ,QAAQ,GAAGjB,UAAO,CAAC;EACvBG,IAAI,EAAEE,EAAE,IAAIA,EAAE,CAAC,MAAM,CAAC;EACtBS,KAAK;IAAA,6BAAE,WAAMT,EAAE;MAAA,OAAIA,EAAE,CAAC,OAAO,CAAC;IAAA;IAAA;MAAA;IAAA;EAAA;AAChC,CAAC,CAAuE;;AAgBjE,SAASa,YAAY,CAC1BC,MAA0C,EAC1Cd,EAEyB,EACR;EACjB,MAAMe,CAAC,GAAGpB,UAAO,CAACmB,MAAM,CAAC;EACzB,OAAOF,QAAQ,CAACI,IAAI,IAAI;IACtB,MAAMC,OAAO,GAAGF,CAAC,CAACC,IAAI,CAAC;IACvB,OAAOhB,EAAE,CAACiB,OAAO,CAAC;EACpB,CAAC,CAAC;AACJ;;AAKO,MAAMC,YAAY,GAAGvB,UAAO,CAGjC;EACAwB,IAAI,EAAE,cAAc;EACpBC,KAAK,EAAE,CAAC;EACRtB,IAAI,EAAE,UAAUF,IAAI,EAAE;IACpB,OAAOF,YAAY,CAACI,IAAI,CAACF,IAAI,CAAC;EAChC,CAAC;EACDG,OAAO,EAAE,UAAUH,IAAI,EAAEyB,UAAU,EAAErB,EAAE,EAAE;IACvC,IAAIsB,SAAS,GAAG,KAAK;IAErB5B,YAAY,CAACK,OAAO,CAACH,IAAI,EAAE,CAAC2B,GAAG,EAAEC,KAAK,KAAK;MACzCF,SAAS,GAAG,IAAI;MAChBtB,EAAE,CAACuB,GAAG,EAAEC,KAAK,CAAC;IAChB,CAAC,CAAC;IAEF,IAAI,CAACF,SAAS,EAAE;MACdD,UAAU,EAAE;IACd;EACF;AACF,CAAC,CAA+D;;AAAC;AAG1D,MAAMI,OAAO,GAAG9B,UAAO,CAAC;EAC7BG,IAAI,EAAE4B,CAAC,IAAIA,CAAC;EACZjB,KAAK;IAAA,8BAAE,WAAMiB,CAAC;MAAA,OAAIA,CAAC;IAAA;IAAA;MAAA;IAAA;EAAA;AACrB,CAAC,CAAyC;AAAC;AAEpC,SAASnB,UAAU,CAAUoB,GAAQ,EAAyB;EACnE,OACE,CAAC,CAACA,GAAG,KACJ,OAAOA,GAAG,KAAK,QAAQ,IAAI,OAAOA,GAAG,KAAK,UAAU,CAAC,IACtD,CAAC,CAACA,GAAG,CAACC,IAAI,IACV,OAAOD,GAAG,CAACC,IAAI,KAAK,UAAU;AAElC;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/gensync-utils/fs.js b/node_modules/@babel/core/lib/gensync-utils/fs.js new file mode 100755 index 0000000..db7f3d1 --- /dev/null +++ b/node_modules/@babel/core/lib/gensync-utils/fs.js @@ -0,0 +1,33 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.stat = exports.readFile = void 0; +function _fs() { + const data = require("fs"); + _fs = function () { + return data; + }; + return data; +} +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +const readFile = _gensync()({ + sync: _fs().readFileSync, + errback: _fs().readFile +}); +exports.readFile = readFile; +const stat = _gensync()({ + sync: _fs().statSync, + errback: _fs().stat +}); +exports.stat = stat; +0 && 0; + +//# sourceMappingURL=fs.js.map diff --git a/node_modules/@babel/core/lib/gensync-utils/fs.js.map b/node_modules/@babel/core/lib/gensync-utils/fs.js.map new file mode 100755 index 0000000..788a14f --- /dev/null +++ b/node_modules/@babel/core/lib/gensync-utils/fs.js.map @@ -0,0 +1 @@ +{"version":3,"names":["readFile","gensync","sync","fs","readFileSync","errback","stat","statSync"],"sources":["../../src/gensync-utils/fs.ts"],"sourcesContent":["import fs from \"fs\";\nimport gensync from \"gensync\";\n\nexport const readFile = gensync<[filepath: string, encoding: \"utf8\"], string>({\n sync: fs.readFileSync,\n errback: fs.readFile,\n});\n\nexport const stat = gensync({\n sync: fs.statSync,\n errback: fs.stat,\n});\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,QAAQ,GAAGC,UAAO,CAA+C;EAC5EC,IAAI,EAAEC,KAAE,CAACC,YAAY;EACrBC,OAAO,EAAEF,KAAE,CAACH;AACd,CAAC,CAAC;AAAC;AAEI,MAAMM,IAAI,GAAGL,UAAO,CAAC;EAC1BC,IAAI,EAAEC,KAAE,CAACI,QAAQ;EACjBF,OAAO,EAAEF,KAAE,CAACG;AACd,CAAC,CAAC;AAAC;AAAA"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/gensync-utils/functional.js b/node_modules/@babel/core/lib/gensync-utils/functional.js new file mode 100755 index 0000000..db84959 --- /dev/null +++ b/node_modules/@babel/core/lib/gensync-utils/functional.js @@ -0,0 +1,33 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.once = once; +var _async = require("./async"); +function once(fn) { + let result; + let resultP; + return function* () { + if (result) return result; + if (!(yield* (0, _async.isAsync)())) return result = yield* fn(); + if (resultP) return yield* (0, _async.waitFor)(resultP); + let resolve, reject; + resultP = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); + try { + result = yield* fn(); + resultP = null; + resolve(result); + return result; + } catch (error) { + reject(error); + throw error; + } + }; +} +0 && 0; + +//# sourceMappingURL=functional.js.map diff --git a/node_modules/@babel/core/lib/gensync-utils/functional.js.map b/node_modules/@babel/core/lib/gensync-utils/functional.js.map new file mode 100755 index 0000000..cfa6ed0 --- /dev/null +++ b/node_modules/@babel/core/lib/gensync-utils/functional.js.map @@ -0,0 +1 @@ +{"version":3,"names":["once","fn","result","resultP","isAsync","waitFor","resolve","reject","Promise","res","rej","error"],"sources":["../../src/gensync-utils/functional.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport { isAsync, waitFor } from \"./async\";\n\nexport function once(fn: () => Handler): () => Handler {\n let result: R;\n let resultP: Promise;\n return function* () {\n if (result) return result;\n if (!(yield* isAsync())) return (result = yield* fn());\n if (resultP) return yield* waitFor(resultP);\n\n let resolve: (result: R) => void, reject: (error: unknown) => void;\n resultP = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n try {\n result = yield* fn();\n // Avoid keeping the promise around\n // now that we have the result.\n resultP = null;\n resolve(result);\n return result;\n } catch (error) {\n reject(error);\n throw error;\n }\n };\n}\n"],"mappings":";;;;;;AAEA;AAEO,SAASA,IAAI,CAAIC,EAAoB,EAAoB;EAC9D,IAAIC,MAAS;EACb,IAAIC,OAAmB;EACvB,OAAO,aAAa;IAClB,IAAID,MAAM,EAAE,OAAOA,MAAM;IACzB,IAAI,EAAE,OAAO,IAAAE,cAAO,GAAE,CAAC,EAAE,OAAQF,MAAM,GAAG,OAAOD,EAAE,EAAE;IACrD,IAAIE,OAAO,EAAE,OAAO,OAAO,IAAAE,cAAO,EAACF,OAAO,CAAC;IAE3C,IAAIG,OAA4B,EAAEC,MAAgC;IAClEJ,OAAO,GAAG,IAAIK,OAAO,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;MAClCJ,OAAO,GAAGG,GAAG;MACbF,MAAM,GAAGG,GAAG;IACd,CAAC,CAAC;IAEF,IAAI;MACFR,MAAM,GAAG,OAAOD,EAAE,EAAE;MAGpBE,OAAO,GAAG,IAAI;MACdG,OAAO,CAACJ,MAAM,CAAC;MACf,OAAOA,MAAM;IACf,CAAC,CAAC,OAAOS,KAAK,EAAE;MACdJ,MAAM,CAACI,KAAK,CAAC;MACb,MAAMA,KAAK;IACb;EACF,CAAC;AACH;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/index.js b/node_modules/@babel/core/lib/index.js new file mode 100755 index 0000000..f490010 --- /dev/null +++ b/node_modules/@babel/core/lib/index.js @@ -0,0 +1,243 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DEFAULT_EXTENSIONS = void 0; +Object.defineProperty(exports, "File", { + enumerable: true, + get: function () { + return _file.default; + } +}); +exports.OptionManager = void 0; +exports.Plugin = Plugin; +Object.defineProperty(exports, "buildExternalHelpers", { + enumerable: true, + get: function () { + return _buildExternalHelpers.default; + } +}); +Object.defineProperty(exports, "createConfigItem", { + enumerable: true, + get: function () { + return _config.createConfigItem; + } +}); +Object.defineProperty(exports, "createConfigItemAsync", { + enumerable: true, + get: function () { + return _config.createConfigItemAsync; + } +}); +Object.defineProperty(exports, "createConfigItemSync", { + enumerable: true, + get: function () { + return _config.createConfigItemSync; + } +}); +Object.defineProperty(exports, "getEnv", { + enumerable: true, + get: function () { + return _environment.getEnv; + } +}); +Object.defineProperty(exports, "loadOptions", { + enumerable: true, + get: function () { + return _config.loadOptions; + } +}); +Object.defineProperty(exports, "loadOptionsAsync", { + enumerable: true, + get: function () { + return _config.loadOptionsAsync; + } +}); +Object.defineProperty(exports, "loadOptionsSync", { + enumerable: true, + get: function () { + return _config.loadOptionsSync; + } +}); +Object.defineProperty(exports, "loadPartialConfig", { + enumerable: true, + get: function () { + return _config.loadPartialConfig; + } +}); +Object.defineProperty(exports, "loadPartialConfigAsync", { + enumerable: true, + get: function () { + return _config.loadPartialConfigAsync; + } +}); +Object.defineProperty(exports, "loadPartialConfigSync", { + enumerable: true, + get: function () { + return _config.loadPartialConfigSync; + } +}); +Object.defineProperty(exports, "parse", { + enumerable: true, + get: function () { + return _parse.parse; + } +}); +Object.defineProperty(exports, "parseAsync", { + enumerable: true, + get: function () { + return _parse.parseAsync; + } +}); +Object.defineProperty(exports, "parseSync", { + enumerable: true, + get: function () { + return _parse.parseSync; + } +}); +Object.defineProperty(exports, "resolvePlugin", { + enumerable: true, + get: function () { + return _files.resolvePlugin; + } +}); +Object.defineProperty(exports, "resolvePreset", { + enumerable: true, + get: function () { + return _files.resolvePreset; + } +}); +Object.defineProperty((0, exports), "template", { + enumerable: true, + get: function () { + return _template().default; + } +}); +Object.defineProperty((0, exports), "tokTypes", { + enumerable: true, + get: function () { + return _parser().tokTypes; + } +}); +Object.defineProperty(exports, "transform", { + enumerable: true, + get: function () { + return _transform.transform; + } +}); +Object.defineProperty(exports, "transformAsync", { + enumerable: true, + get: function () { + return _transform.transformAsync; + } +}); +Object.defineProperty(exports, "transformFile", { + enumerable: true, + get: function () { + return _transformFile.transformFile; + } +}); +Object.defineProperty(exports, "transformFileAsync", { + enumerable: true, + get: function () { + return _transformFile.transformFileAsync; + } +}); +Object.defineProperty(exports, "transformFileSync", { + enumerable: true, + get: function () { + return _transformFile.transformFileSync; + } +}); +Object.defineProperty(exports, "transformFromAst", { + enumerable: true, + get: function () { + return _transformAst.transformFromAst; + } +}); +Object.defineProperty(exports, "transformFromAstAsync", { + enumerable: true, + get: function () { + return _transformAst.transformFromAstAsync; + } +}); +Object.defineProperty(exports, "transformFromAstSync", { + enumerable: true, + get: function () { + return _transformAst.transformFromAstSync; + } +}); +Object.defineProperty(exports, "transformSync", { + enumerable: true, + get: function () { + return _transform.transformSync; + } +}); +Object.defineProperty((0, exports), "traverse", { + enumerable: true, + get: function () { + return _traverse().default; + } +}); +exports.version = exports.types = void 0; +var _file = require("./transformation/file/file"); +var _buildExternalHelpers = require("./tools/build-external-helpers"); +var _files = require("./config/files"); +var _environment = require("./config/helpers/environment"); +function _types() { + const data = require("@babel/types"); + _types = function () { + return data; + }; + return data; +} +Object.defineProperty((0, exports), "types", { + enumerable: true, + get: function () { + return _types(); + } +}); +function _parser() { + const data = require("@babel/parser"); + _parser = function () { + return data; + }; + return data; +} +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +function _template() { + const data = require("@babel/template"); + _template = function () { + return data; + }; + return data; +} +var _config = require("./config"); +var _transform = require("./transform"); +var _transformFile = require("./transform-file"); +var _transformAst = require("./transform-ast"); +var _parse = require("./parse"); +const version = "7.20.7"; +exports.version = version; +const DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); + +exports.DEFAULT_EXTENSIONS = DEFAULT_EXTENSIONS; +class OptionManager { + init(opts) { + return (0, _config.loadOptionsSync)(opts); + } +} +exports.OptionManager = OptionManager; +function Plugin(alias) { + throw new Error(`The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`); +} +0 && (exports.types = exports.traverse = exports.tokTypes = exports.template = 0); + +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/core/lib/index.js.map b/node_modules/@babel/core/lib/index.js.map new file mode 100755 index 0000000..140d7cc --- /dev/null +++ b/node_modules/@babel/core/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["version","DEFAULT_EXTENSIONS","Object","freeze","OptionManager","init","opts","loadOptionsSync","Plugin","alias","Error"],"sources":["../src/index.ts"],"sourcesContent":["declare const PACKAGE_JSON: { name: string; version: string };\nexport const version = PACKAGE_JSON.version;\n\nexport { default as File } from \"./transformation/file/file\";\nexport type { default as PluginPass } from \"./transformation/plugin-pass\";\nexport { default as buildExternalHelpers } from \"./tools/build-external-helpers\";\nexport { resolvePlugin, resolvePreset } from \"./config/files\";\n\nexport { getEnv } from \"./config/helpers/environment\";\n\n// NOTE: Lazy re-exports aren't detected by the Node.js CJS-ESM interop.\n// These are handled by pluginInjectNodeReexportsHints in our babel.config.js\n// so that they can work well.\nexport * as types from \"@babel/types\";\nexport { tokTypes } from \"@babel/parser\";\nexport { default as traverse } from \"@babel/traverse\";\nexport { default as template } from \"@babel/template\";\n\nexport {\n createConfigItem,\n createConfigItemSync,\n createConfigItemAsync,\n} from \"./config\";\n\nexport {\n loadPartialConfig,\n loadPartialConfigSync,\n loadPartialConfigAsync,\n loadOptions,\n loadOptionsSync,\n loadOptionsAsync,\n} from \"./config\";\n\nexport type {\n CallerMetadata,\n InputOptions,\n PluginAPI,\n PluginObject,\n PresetAPI,\n PresetObject,\n} from \"./config\";\n\nexport {\n transform,\n transformSync,\n transformAsync,\n type FileResult,\n} from \"./transform\";\nexport {\n transformFile,\n transformFileSync,\n transformFileAsync,\n} from \"./transform-file\";\nexport {\n transformFromAst,\n transformFromAstSync,\n transformFromAstAsync,\n} from \"./transform-ast\";\nexport { parse, parseSync, parseAsync } from \"./parse\";\n\n/**\n * Recommended set of compilable extensions. Not used in @babel/core directly, but meant as\n * as an easy source for tooling making use of @babel/core.\n */\nexport const DEFAULT_EXTENSIONS = Object.freeze([\n \".js\",\n \".jsx\",\n \".es6\",\n \".es\",\n \".mjs\",\n \".cjs\",\n] as const);\n\n// For easier backward-compatibility, provide an API like the one we exposed in Babel 6.\nimport { loadOptionsSync } from \"./config\";\nexport class OptionManager {\n init(opts: {}) {\n return loadOptionsSync(opts);\n }\n}\n\nexport function Plugin(alias: string) {\n throw new Error(\n `The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`,\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AAEA;AACA;AAEA;AAAsD;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAA;EAAA;EAAA;IAAA;EAAA;AAAA;AAMtD;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;AAwBA;AAMA;AAKA;AAKA;AAzDO,MAAMA,OAAO,WAAuB;AAAC;AA+DrC,MAAMC,kBAAkB,GAAGC,MAAM,CAACC,MAAM,CAAC,CAC9C,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,CACP,CAAU;;AAAC;AAIL,MAAMC,aAAa,CAAC;EACzBC,IAAI,CAACC,IAAQ,EAAE;IACb,OAAO,IAAAC,uBAAe,EAACD,IAAI,CAAC;EAC9B;AACF;AAAC;AAEM,SAASE,MAAM,CAACC,KAAa,EAAE;EACpC,MAAM,IAAIC,KAAK,CACZ,QAAOD,KAAM,kEAAiE,CAChF;AACH;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/parse.js b/node_modules/@babel/core/lib/parse.js new file mode 100755 index 0000000..93bb7d1 --- /dev/null +++ b/node_modules/@babel/core/lib/parse.js @@ -0,0 +1,48 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.parse = void 0; +exports.parseAsync = parseAsync; +exports.parseSync = parseSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _config = require("./config"); +var _parser = require("./parser"); +var _normalizeOpts = require("./transformation/normalize-opts"); +var _rewriteStackTrace = require("./errors/rewrite-stack-trace"); +const parseRunner = _gensync()(function* parse(code, opts) { + const config = yield* (0, _config.default)(opts); + if (config === null) { + return null; + } + return yield* (0, _parser.default)(config.passes, (0, _normalizeOpts.default)(config), code); +}); +const parse = function parse(code, opts, callback) { + if (typeof opts === "function") { + callback = opts; + opts = undefined; + } + if (callback === undefined) { + { + return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.sync)(code, opts); + } + } + (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.errback)(code, opts, callback); +}; +exports.parse = parse; +function parseSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.sync)(...args); +} +function parseAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.async)(...args); +} +0 && 0; + +//# sourceMappingURL=parse.js.map diff --git a/node_modules/@babel/core/lib/parse.js.map b/node_modules/@babel/core/lib/parse.js.map new file mode 100755 index 0000000..f223696 --- /dev/null +++ b/node_modules/@babel/core/lib/parse.js.map @@ -0,0 +1 @@ +{"version":3,"names":["parseRunner","gensync","parse","code","opts","config","loadConfig","parser","passes","normalizeOptions","callback","undefined","beginHiddenCallStack","sync","errback","parseSync","args","parseAsync","async"],"sources":["../src/parse.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config\";\nimport type { InputOptions } from \"./config\";\nimport parser from \"./parser\";\nimport type { ParseResult } from \"./parser\";\nimport normalizeOptions from \"./transformation/normalize-opts\";\nimport type { ValidatedOptions } from \"./config/validation/options\";\n\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace\";\n\ntype FileParseCallback = {\n (err: Error, ast: null): void;\n (err: null, ast: ParseResult | null): void;\n};\n\ntype Parse = {\n (code: string, callback: FileParseCallback): void;\n (\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileParseCallback,\n ): void;\n (code: string, opts?: InputOptions | null): ParseResult | null;\n};\n\nconst parseRunner = gensync(function* parse(\n code: string,\n opts: InputOptions | undefined | null,\n): Handler {\n const config = yield* loadConfig(opts);\n\n if (config === null) {\n return null;\n }\n\n return yield* parser(config.passes, normalizeOptions(config), code);\n});\n\nexport const parse: Parse = function parse(\n code,\n opts?,\n callback?: FileParseCallback,\n) {\n if (typeof opts === \"function\") {\n callback = opts;\n opts = undefined as ValidatedOptions;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'parse' function expects a callback. If you need to call it synchronously, please use 'parseSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'parse' function will expect a callback. If you need to call it synchronously, please use 'parseSync'.\",\n // );\n return beginHiddenCallStack(parseRunner.sync)(code, opts);\n }\n }\n\n beginHiddenCallStack(parseRunner.errback)(code, opts, callback);\n};\n\nexport function parseSync(...args: Parameters) {\n return beginHiddenCallStack(parseRunner.sync)(...args);\n}\nexport function parseAsync(...args: Parameters) {\n return beginHiddenCallStack(parseRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;AAEA;AAEA;AAGA;AAiBA,MAAMA,WAAW,GAAGC,UAAO,CAAC,UAAUC,KAAK,CACzCC,IAAY,EACZC,IAAqC,EACR;EAC7B,MAAMC,MAAM,GAAG,OAAO,IAAAC,eAAU,EAACF,IAAI,CAAC;EAEtC,IAAIC,MAAM,KAAK,IAAI,EAAE;IACnB,OAAO,IAAI;EACb;EAEA,OAAO,OAAO,IAAAE,eAAM,EAACF,MAAM,CAACG,MAAM,EAAE,IAAAC,sBAAgB,EAACJ,MAAM,CAAC,EAAEF,IAAI,CAAC;AACrE,CAAC,CAAC;AAEK,MAAMD,KAAY,GAAG,SAASA,KAAK,CACxCC,IAAI,EACJC,IAAK,EACLM,QAA4B,EAC5B;EACA,IAAI,OAAON,IAAI,KAAK,UAAU,EAAE;IAC9BM,QAAQ,GAAGN,IAAI;IACfA,IAAI,GAAGO,SAA6B;EACtC;EAEA,IAAID,QAAQ,KAAKC,SAAS,EAAE;IAKnB;MAIL,OAAO,IAAAC,uCAAoB,EAACZ,WAAW,CAACa,IAAI,CAAC,CAACV,IAAI,EAAEC,IAAI,CAAC;IAC3D;EACF;EAEA,IAAAQ,uCAAoB,EAACZ,WAAW,CAACc,OAAO,CAAC,CAACX,IAAI,EAAEC,IAAI,EAAEM,QAAQ,CAAC;AACjE,CAAC;AAAC;AAEK,SAASK,SAAS,CAAC,GAAGC,IAAyC,EAAE;EACtE,OAAO,IAAAJ,uCAAoB,EAACZ,WAAW,CAACa,IAAI,CAAC,CAAC,GAAGG,IAAI,CAAC;AACxD;AACO,SAASC,UAAU,CAAC,GAAGD,IAA0C,EAAE;EACxE,OAAO,IAAAJ,uCAAoB,EAACZ,WAAW,CAACkB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AACzD;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/parser/index.js b/node_modules/@babel/core/lib/parser/index.js new file mode 100755 index 0000000..582c3e7 --- /dev/null +++ b/node_modules/@babel/core/lib/parser/index.js @@ -0,0 +1,80 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = parser; +function _parser() { + const data = require("@babel/parser"); + _parser = function () { + return data; + }; + return data; +} +function _codeFrame() { + const data = require("@babel/code-frame"); + _codeFrame = function () { + return data; + }; + return data; +} +var _missingPluginHelper = require("./util/missing-plugin-helper"); +function* parser(pluginPasses, { + parserOpts, + highlightCode = true, + filename = "unknown" +}, code) { + try { + const results = []; + for (const plugins of pluginPasses) { + for (const plugin of plugins) { + const { + parserOverride + } = plugin; + if (parserOverride) { + const ast = parserOverride(code, parserOpts, _parser().parse); + if (ast !== undefined) results.push(ast); + } + } + } + if (results.length === 0) { + return (0, _parser().parse)(code, parserOpts); + } else if (results.length === 1) { + yield* []; + if (typeof results[0].then === "function") { + throw new Error(`You appear to be using an async parser plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); + } + return results[0]; + } + throw new Error("More than one plugin attempted to override parsing."); + } catch (err) { + if (err.code === "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED") { + err.message += "\nConsider renaming the file to '.mjs', or setting sourceType:module " + "or sourceType:unambiguous in your Babel config for this file."; + } + + const { + loc, + missingPlugin + } = err; + if (loc) { + const codeFrame = (0, _codeFrame().codeFrameColumns)(code, { + start: { + line: loc.line, + column: loc.column + 1 + } + }, { + highlightCode + }); + if (missingPlugin) { + err.message = `${filename}: ` + (0, _missingPluginHelper.default)(missingPlugin[0], loc, codeFrame); + } else { + err.message = `${filename}: ${err.message}\n\n` + codeFrame; + } + err.code = "BABEL_PARSE_ERROR"; + } + throw err; + } +} +0 && 0; + +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/core/lib/parser/index.js.map b/node_modules/@babel/core/lib/parser/index.js.map new file mode 100755 index 0000000..fe6d0cb --- /dev/null +++ b/node_modules/@babel/core/lib/parser/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["parser","pluginPasses","parserOpts","highlightCode","filename","code","results","plugins","plugin","parserOverride","ast","parse","undefined","push","length","then","Error","err","message","loc","missingPlugin","codeFrame","codeFrameColumns","start","line","column","generateMissingPluginMessage"],"sources":["../../src/parser/index.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\nimport { parse } from \"@babel/parser\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport generateMissingPluginMessage from \"./util/missing-plugin-helper\";\nimport type { PluginPasses } from \"../config\";\n\nexport type ParseResult = ReturnType;\n\nexport default function* parser(\n pluginPasses: PluginPasses,\n { parserOpts, highlightCode = true, filename = \"unknown\" }: any,\n code: string,\n): Handler {\n try {\n const results = [];\n for (const plugins of pluginPasses) {\n for (const plugin of plugins) {\n const { parserOverride } = plugin;\n if (parserOverride) {\n const ast = parserOverride(code, parserOpts, parse);\n\n if (ast !== undefined) results.push(ast);\n }\n }\n }\n\n if (results.length === 0) {\n return parse(code, parserOpts);\n } else if (results.length === 1) {\n // @ts-expect-error - If we want to allow async parsers\n yield* [];\n if (typeof results[0].then === \"function\") {\n throw new Error(\n `You appear to be using an async parser plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, you may need to upgrade ` +\n `your @babel/core version.`,\n );\n }\n return results[0];\n }\n // TODO: Add an error code\n throw new Error(\"More than one plugin attempted to override parsing.\");\n } catch (err) {\n if (err.code === \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\") {\n err.message +=\n \"\\nConsider renaming the file to '.mjs', or setting sourceType:module \" +\n \"or sourceType:unambiguous in your Babel config for this file.\";\n // err.code will be changed to BABEL_PARSE_ERROR later.\n }\n\n const { loc, missingPlugin } = err;\n if (loc) {\n const codeFrame = codeFrameColumns(\n code,\n {\n start: {\n line: loc.line,\n column: loc.column + 1,\n },\n },\n {\n highlightCode,\n },\n );\n if (missingPlugin) {\n err.message =\n `${filename}: ` +\n generateMissingPluginMessage(missingPlugin[0], loc, codeFrame);\n } else {\n err.message = `${filename}: ${err.message}\\n\\n` + codeFrame;\n }\n err.code = \"BABEL_PARSE_ERROR\";\n }\n throw err;\n }\n}\n"],"mappings":";;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AAKe,UAAUA,MAAM,CAC7BC,YAA0B,EAC1B;EAAEC,UAAU;EAAEC,aAAa,GAAG,IAAI;EAAEC,QAAQ,GAAG;AAAe,CAAC,EAC/DC,IAAY,EACU;EACtB,IAAI;IACF,MAAMC,OAAO,GAAG,EAAE;IAClB,KAAK,MAAMC,OAAO,IAAIN,YAAY,EAAE;MAClC,KAAK,MAAMO,MAAM,IAAID,OAAO,EAAE;QAC5B,MAAM;UAAEE;QAAe,CAAC,GAAGD,MAAM;QACjC,IAAIC,cAAc,EAAE;UAClB,MAAMC,GAAG,GAAGD,cAAc,CAACJ,IAAI,EAAEH,UAAU,EAAES,eAAK,CAAC;UAEnD,IAAID,GAAG,KAAKE,SAAS,EAAEN,OAAO,CAACO,IAAI,CAACH,GAAG,CAAC;QAC1C;MACF;IACF;IAEA,IAAIJ,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;MACxB,OAAO,IAAAH,eAAK,EAACN,IAAI,EAAEH,UAAU,CAAC;IAChC,CAAC,MAAM,IAAII,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;MAE/B,OAAO,EAAE;MACT,IAAI,OAAOR,OAAO,CAAC,CAAC,CAAC,CAACS,IAAI,KAAK,UAAU,EAAE;QACzC,MAAM,IAAIC,KAAK,CACZ,iDAAgD,GAC9C,wDAAuD,GACvD,8DAA6D,GAC7D,2BAA0B,CAC9B;MACH;MACA,OAAOV,OAAO,CAAC,CAAC,CAAC;IACnB;IAEA,MAAM,IAAIU,KAAK,CAAC,qDAAqD,CAAC;EACxE,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,IAAIA,GAAG,CAACZ,IAAI,KAAK,yCAAyC,EAAE;MAC1DY,GAAG,CAACC,OAAO,IACT,uEAAuE,GACvE,+DAA+D;IAEnE;;IAEA,MAAM;MAAEC,GAAG;MAAEC;IAAc,CAAC,GAAGH,GAAG;IAClC,IAAIE,GAAG,EAAE;MACP,MAAME,SAAS,GAAG,IAAAC,6BAAgB,EAChCjB,IAAI,EACJ;QACEkB,KAAK,EAAE;UACLC,IAAI,EAAEL,GAAG,CAACK,IAAI;UACdC,MAAM,EAAEN,GAAG,CAACM,MAAM,GAAG;QACvB;MACF,CAAC,EACD;QACEtB;MACF,CAAC,CACF;MACD,IAAIiB,aAAa,EAAE;QACjBH,GAAG,CAACC,OAAO,GACR,GAAEd,QAAS,IAAG,GACf,IAAAsB,4BAA4B,EAACN,aAAa,CAAC,CAAC,CAAC,EAAED,GAAG,EAAEE,SAAS,CAAC;MAClE,CAAC,MAAM;QACLJ,GAAG,CAACC,OAAO,GAAI,GAAEd,QAAS,KAAIa,GAAG,CAACC,OAAQ,MAAK,GAAGG,SAAS;MAC7D;MACAJ,GAAG,CAACZ,IAAI,GAAG,mBAAmB;IAChC;IACA,MAAMY,GAAG;EACX;AACF;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js b/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js new file mode 100755 index 0000000..992bf81 --- /dev/null +++ b/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js @@ -0,0 +1,322 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = generateMissingPluginMessage; +const pluginNameMap = { + asyncDoExpressions: { + syntax: { + name: "@babel/plugin-syntax-async-do-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-do-expressions" + } + }, + decimal: { + syntax: { + name: "@babel/plugin-syntax-decimal", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decimal" + } + }, + decorators: { + syntax: { + name: "@babel/plugin-syntax-decorators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decorators" + }, + transform: { + name: "@babel/plugin-proposal-decorators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-decorators" + } + }, + doExpressions: { + syntax: { + name: "@babel/plugin-syntax-do-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-do-expressions" + }, + transform: { + name: "@babel/plugin-proposal-do-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-do-expressions" + } + }, + exportDefaultFrom: { + syntax: { + name: "@babel/plugin-syntax-export-default-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-default-from" + }, + transform: { + name: "@babel/plugin-proposal-export-default-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-default-from" + } + }, + flow: { + syntax: { + name: "@babel/plugin-syntax-flow", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-flow" + }, + transform: { + name: "@babel/preset-flow", + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-flow" + } + }, + functionBind: { + syntax: { + name: "@babel/plugin-syntax-function-bind", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-bind" + }, + transform: { + name: "@babel/plugin-proposal-function-bind", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-bind" + } + }, + functionSent: { + syntax: { + name: "@babel/plugin-syntax-function-sent", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-sent" + }, + transform: { + name: "@babel/plugin-proposal-function-sent", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-sent" + } + }, + jsx: { + syntax: { + name: "@babel/plugin-syntax-jsx", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx" + }, + transform: { + name: "@babel/preset-react", + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-react" + } + }, + importAssertions: { + syntax: { + name: "@babel/plugin-syntax-import-assertions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions" + } + }, + pipelineOperator: { + syntax: { + name: "@babel/plugin-syntax-pipeline-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-pipeline-operator" + }, + transform: { + name: "@babel/plugin-proposal-pipeline-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-pipeline-operator" + } + }, + recordAndTuple: { + syntax: { + name: "@babel/plugin-syntax-record-and-tuple", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple" + } + }, + regexpUnicodeSets: { + syntax: { + name: "@babel/plugin-syntax-unicode-sets-regex", + url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md" + }, + transform: { + name: "@babel/plugin-proposal-unicode-sets-regex", + url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md" + } + }, + throwExpressions: { + syntax: { + name: "@babel/plugin-syntax-throw-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-throw-expressions" + }, + transform: { + name: "@babel/plugin-proposal-throw-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-throw-expressions" + } + }, + typescript: { + syntax: { + name: "@babel/plugin-syntax-typescript", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-typescript" + }, + transform: { + name: "@babel/preset-typescript", + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-typescript" + } + }, + asyncGenerators: { + syntax: { + name: "@babel/plugin-syntax-async-generators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-generators" + }, + transform: { + name: "@babel/plugin-proposal-async-generator-functions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-async-generator-functions" + } + }, + classProperties: { + syntax: { + name: "@babel/plugin-syntax-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" + }, + transform: { + name: "@babel/plugin-proposal-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-class-properties" + } + }, + classPrivateProperties: { + syntax: { + name: "@babel/plugin-syntax-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" + }, + transform: { + name: "@babel/plugin-proposal-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-class-properties" + } + }, + classPrivateMethods: { + syntax: { + name: "@babel/plugin-syntax-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" + }, + transform: { + name: "@babel/plugin-proposal-private-methods", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-private-methods" + } + }, + classStaticBlock: { + syntax: { + name: "@babel/plugin-syntax-class-static-block", + url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-class-static-block" + }, + transform: { + name: "@babel/plugin-proposal-class-static-block", + url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-class-static-block" + } + }, + dynamicImport: { + syntax: { + name: "@babel/plugin-syntax-dynamic-import", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import" + } + }, + exportNamespaceFrom: { + syntax: { + name: "@babel/plugin-syntax-export-namespace-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-namespace-from" + }, + transform: { + name: "@babel/plugin-proposal-export-namespace-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-namespace-from" + } + }, + importMeta: { + syntax: { + name: "@babel/plugin-syntax-import-meta", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-meta" + } + }, + logicalAssignment: { + syntax: { + name: "@babel/plugin-syntax-logical-assignment-operators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-logical-assignment-operators" + }, + transform: { + name: "@babel/plugin-proposal-logical-assignment-operators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-logical-assignment-operators" + } + }, + moduleStringNames: { + syntax: { + name: "@babel/plugin-syntax-module-string-names", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-module-string-names" + } + }, + numericSeparator: { + syntax: { + name: "@babel/plugin-syntax-numeric-separator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-numeric-separator" + }, + transform: { + name: "@babel/plugin-proposal-numeric-separator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-numeric-separator" + } + }, + nullishCoalescingOperator: { + syntax: { + name: "@babel/plugin-syntax-nullish-coalescing-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-nullish-coalescing-operator" + }, + transform: { + name: "@babel/plugin-proposal-nullish-coalescing-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-nullish-coalescing-opearator" + } + }, + objectRestSpread: { + syntax: { + name: "@babel/plugin-syntax-object-rest-spread", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-object-rest-spread" + }, + transform: { + name: "@babel/plugin-proposal-object-rest-spread", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-object-rest-spread" + } + }, + optionalCatchBinding: { + syntax: { + name: "@babel/plugin-syntax-optional-catch-binding", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-catch-binding" + }, + transform: { + name: "@babel/plugin-proposal-optional-catch-binding", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-optional-catch-binding" + } + }, + optionalChaining: { + syntax: { + name: "@babel/plugin-syntax-optional-chaining", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-chaining" + }, + transform: { + name: "@babel/plugin-proposal-optional-chaining", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-optional-chaining" + } + }, + privateIn: { + syntax: { + name: "@babel/plugin-syntax-private-property-in-object", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-private-property-in-object" + }, + transform: { + name: "@babel/plugin-proposal-private-property-in-object", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-private-property-in-object" + } + } +}; + +pluginNameMap.privateIn.syntax = pluginNameMap.privateIn.transform; +const getNameURLCombination = ({ + name, + url +}) => `${name} (${url})`; + +function generateMissingPluginMessage(missingPluginName, loc, codeFrame) { + let helpMessage = `Support for the experimental syntax '${missingPluginName}' isn't currently enabled ` + `(${loc.line}:${loc.column + 1}):\n\n` + codeFrame; + const pluginInfo = pluginNameMap[missingPluginName]; + if (pluginInfo) { + const { + syntax: syntaxPlugin, + transform: transformPlugin + } = pluginInfo; + if (syntaxPlugin) { + const syntaxPluginInfo = getNameURLCombination(syntaxPlugin); + if (transformPlugin) { + const transformPluginInfo = getNameURLCombination(transformPlugin); + const sectionType = transformPlugin.name.startsWith("@babel/plugin") ? "plugins" : "presets"; + helpMessage += `\n\nAdd ${transformPluginInfo} to the '${sectionType}' section of your Babel config to enable transformation. +If you want to leave it as-is, add ${syntaxPluginInfo} to the 'plugins' section to enable parsing.`; + } else { + helpMessage += `\n\nAdd ${syntaxPluginInfo} to the 'plugins' section of your Babel config ` + `to enable parsing.`; + } + } + } + return helpMessage; +} +0 && 0; + +//# sourceMappingURL=missing-plugin-helper.js.map diff --git a/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map b/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map new file mode 100755 index 0000000..3c17cbc --- /dev/null +++ b/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map @@ -0,0 +1 @@ +{"version":3,"names":["pluginNameMap","asyncDoExpressions","syntax","name","url","decimal","decorators","transform","doExpressions","exportDefaultFrom","flow","functionBind","functionSent","jsx","importAssertions","pipelineOperator","recordAndTuple","regexpUnicodeSets","throwExpressions","typescript","asyncGenerators","classProperties","classPrivateProperties","classPrivateMethods","classStaticBlock","dynamicImport","exportNamespaceFrom","importMeta","logicalAssignment","moduleStringNames","numericSeparator","nullishCoalescingOperator","objectRestSpread","optionalCatchBinding","optionalChaining","privateIn","getNameURLCombination","generateMissingPluginMessage","missingPluginName","loc","codeFrame","helpMessage","line","column","pluginInfo","syntaxPlugin","transformPlugin","syntaxPluginInfo","transformPluginInfo","sectionType","startsWith"],"sources":["../../../src/parser/util/missing-plugin-helper.ts"],"sourcesContent":["const pluginNameMap: Record<\n string,\n Partial>>\n> = {\n asyncDoExpressions: {\n syntax: {\n name: \"@babel/plugin-syntax-async-do-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-do-expressions\",\n },\n },\n decimal: {\n syntax: {\n name: \"@babel/plugin-syntax-decimal\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decimal\",\n },\n },\n decorators: {\n syntax: {\n name: \"@babel/plugin-syntax-decorators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decorators\",\n },\n transform: {\n name: \"@babel/plugin-proposal-decorators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-decorators\",\n },\n },\n doExpressions: {\n syntax: {\n name: \"@babel/plugin-syntax-do-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-do-expressions\",\n },\n transform: {\n name: \"@babel/plugin-proposal-do-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-do-expressions\",\n },\n },\n exportDefaultFrom: {\n syntax: {\n name: \"@babel/plugin-syntax-export-default-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-default-from\",\n },\n transform: {\n name: \"@babel/plugin-proposal-export-default-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-default-from\",\n },\n },\n flow: {\n syntax: {\n name: \"@babel/plugin-syntax-flow\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-flow\",\n },\n transform: {\n name: \"@babel/preset-flow\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-preset-flow\",\n },\n },\n functionBind: {\n syntax: {\n name: \"@babel/plugin-syntax-function-bind\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-bind\",\n },\n transform: {\n name: \"@babel/plugin-proposal-function-bind\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-bind\",\n },\n },\n functionSent: {\n syntax: {\n name: \"@babel/plugin-syntax-function-sent\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-sent\",\n },\n transform: {\n name: \"@babel/plugin-proposal-function-sent\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-sent\",\n },\n },\n jsx: {\n syntax: {\n name: \"@babel/plugin-syntax-jsx\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx\",\n },\n transform: {\n name: \"@babel/preset-react\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-preset-react\",\n },\n },\n importAssertions: {\n syntax: {\n name: \"@babel/plugin-syntax-import-assertions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions\",\n },\n },\n pipelineOperator: {\n syntax: {\n name: \"@babel/plugin-syntax-pipeline-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-pipeline-operator\",\n },\n transform: {\n name: \"@babel/plugin-proposal-pipeline-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-pipeline-operator\",\n },\n },\n recordAndTuple: {\n syntax: {\n name: \"@babel/plugin-syntax-record-and-tuple\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple\",\n },\n },\n regexpUnicodeSets: {\n syntax: {\n name: \"@babel/plugin-syntax-unicode-sets-regex\",\n url: \"https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md\",\n },\n transform: {\n name: \"@babel/plugin-proposal-unicode-sets-regex\",\n url: \"https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md\",\n },\n },\n throwExpressions: {\n syntax: {\n name: \"@babel/plugin-syntax-throw-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-throw-expressions\",\n },\n transform: {\n name: \"@babel/plugin-proposal-throw-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-throw-expressions\",\n },\n },\n typescript: {\n syntax: {\n name: \"@babel/plugin-syntax-typescript\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-typescript\",\n },\n transform: {\n name: \"@babel/preset-typescript\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-preset-typescript\",\n },\n },\n\n // TODO: This plugins are now supported by default by @babel/parser: they can\n // be removed from this list. Although removing them isn't a breaking change,\n // it's better to keep a nice error message for users using older versions of\n // the parser. They can be removed in Babel 8.\n asyncGenerators: {\n syntax: {\n name: \"@babel/plugin-syntax-async-generators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-generators\",\n },\n transform: {\n name: \"@babel/plugin-proposal-async-generator-functions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-async-generator-functions\",\n },\n },\n classProperties: {\n syntax: {\n name: \"@babel/plugin-syntax-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties\",\n },\n transform: {\n name: \"@babel/plugin-proposal-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-class-properties\",\n },\n },\n classPrivateProperties: {\n syntax: {\n name: \"@babel/plugin-syntax-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties\",\n },\n transform: {\n name: \"@babel/plugin-proposal-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-class-properties\",\n },\n },\n classPrivateMethods: {\n syntax: {\n name: \"@babel/plugin-syntax-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties\",\n },\n transform: {\n name: \"@babel/plugin-proposal-private-methods\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-private-methods\",\n },\n },\n classStaticBlock: {\n syntax: {\n name: \"@babel/plugin-syntax-class-static-block\",\n url: \"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-class-static-block\",\n },\n transform: {\n name: \"@babel/plugin-proposal-class-static-block\",\n url: \"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-class-static-block\",\n },\n },\n dynamicImport: {\n syntax: {\n name: \"@babel/plugin-syntax-dynamic-import\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import\",\n },\n },\n exportNamespaceFrom: {\n syntax: {\n name: \"@babel/plugin-syntax-export-namespace-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-namespace-from\",\n },\n transform: {\n name: \"@babel/plugin-proposal-export-namespace-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-namespace-from\",\n },\n },\n importMeta: {\n syntax: {\n name: \"@babel/plugin-syntax-import-meta\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-meta\",\n },\n },\n logicalAssignment: {\n syntax: {\n name: \"@babel/plugin-syntax-logical-assignment-operators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-logical-assignment-operators\",\n },\n transform: {\n name: \"@babel/plugin-proposal-logical-assignment-operators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-logical-assignment-operators\",\n },\n },\n moduleStringNames: {\n syntax: {\n name: \"@babel/plugin-syntax-module-string-names\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-module-string-names\",\n },\n },\n numericSeparator: {\n syntax: {\n name: \"@babel/plugin-syntax-numeric-separator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-numeric-separator\",\n },\n transform: {\n name: \"@babel/plugin-proposal-numeric-separator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-numeric-separator\",\n },\n },\n nullishCoalescingOperator: {\n syntax: {\n name: \"@babel/plugin-syntax-nullish-coalescing-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-nullish-coalescing-operator\",\n },\n transform: {\n name: \"@babel/plugin-proposal-nullish-coalescing-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-nullish-coalescing-opearator\",\n },\n },\n objectRestSpread: {\n syntax: {\n name: \"@babel/plugin-syntax-object-rest-spread\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-object-rest-spread\",\n },\n transform: {\n name: \"@babel/plugin-proposal-object-rest-spread\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-object-rest-spread\",\n },\n },\n optionalCatchBinding: {\n syntax: {\n name: \"@babel/plugin-syntax-optional-catch-binding\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-catch-binding\",\n },\n transform: {\n name: \"@babel/plugin-proposal-optional-catch-binding\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-optional-catch-binding\",\n },\n },\n optionalChaining: {\n syntax: {\n name: \"@babel/plugin-syntax-optional-chaining\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-chaining\",\n },\n transform: {\n name: \"@babel/plugin-proposal-optional-chaining\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-optional-chaining\",\n },\n },\n privateIn: {\n syntax: {\n name: \"@babel/plugin-syntax-private-property-in-object\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-private-property-in-object\",\n },\n transform: {\n name: \"@babel/plugin-proposal-private-property-in-object\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-private-property-in-object\",\n },\n },\n};\n\n//todo: we don't have plugin-syntax-private-property-in-object\npluginNameMap.privateIn.syntax = pluginNameMap.privateIn.transform;\n\nconst getNameURLCombination = ({ name, url }: { name: string; url: string }) =>\n `${name} (${url})`;\n\n/*\nReturns a string of the format:\nSupport for the experimental syntax [@babel/parser plugin name] isn't currently enabled ([loc]):\n\n[code frame]\n\nAdd [npm package name] ([url]) to the 'plugins' section of your Babel config\nto enable [parsing|transformation].\n*/\nexport default function generateMissingPluginMessage(\n missingPluginName: string,\n loc: {\n line: number;\n column: number;\n },\n codeFrame: string,\n): string {\n let helpMessage =\n `Support for the experimental syntax '${missingPluginName}' isn't currently enabled ` +\n `(${loc.line}:${loc.column + 1}):\\n\\n` +\n codeFrame;\n const pluginInfo = pluginNameMap[missingPluginName];\n if (pluginInfo) {\n const { syntax: syntaxPlugin, transform: transformPlugin } = pluginInfo;\n if (syntaxPlugin) {\n const syntaxPluginInfo = getNameURLCombination(syntaxPlugin);\n if (transformPlugin) {\n const transformPluginInfo = getNameURLCombination(transformPlugin);\n const sectionType = transformPlugin.name.startsWith(\"@babel/plugin\")\n ? \"plugins\"\n : \"presets\";\n helpMessage += `\\n\\nAdd ${transformPluginInfo} to the '${sectionType}' section of your Babel config to enable transformation.\nIf you want to leave it as-is, add ${syntaxPluginInfo} to the 'plugins' section to enable parsing.`;\n } else {\n helpMessage +=\n `\\n\\nAdd ${syntaxPluginInfo} to the 'plugins' section of your Babel config ` +\n `to enable parsing.`;\n }\n }\n }\n return helpMessage;\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/tools/build-external-helpers.js b/node_modules/@babel/core/lib/tools/build-external-helpers.js new file mode 100755 index 0000000..5ecbb67 --- /dev/null +++ b/node_modules/@babel/core/lib/tools/build-external-helpers.js @@ -0,0 +1,144 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +function helpers() { + const data = require("@babel/helpers"); + helpers = function () { + return data; + }; + return data; +} +function _generator() { + const data = require("@babel/generator"); + _generator = function () { + return data; + }; + return data; +} +function _template() { + const data = require("@babel/template"); + _template = function () { + return data; + }; + return data; +} +function _t() { + const data = require("@babel/types"); + _t = function () { + return data; + }; + return data; +} +var _file = require("../transformation/file/file"); +const { + arrayExpression, + assignmentExpression, + binaryExpression, + blockStatement, + callExpression, + cloneNode, + conditionalExpression, + exportNamedDeclaration, + exportSpecifier, + expressionStatement, + functionExpression, + identifier, + memberExpression, + objectExpression, + program, + stringLiteral, + unaryExpression, + variableDeclaration, + variableDeclarator +} = _t(); +const buildUmdWrapper = replacements => _template().default.statement` + (function (root, factory) { + if (typeof define === "function" && define.amd) { + define(AMD_ARGUMENTS, factory); + } else if (typeof exports === "object") { + factory(COMMON_ARGUMENTS); + } else { + factory(BROWSER_ARGUMENTS); + } + })(UMD_ROOT, function (FACTORY_PARAMETERS) { + FACTORY_BODY + }); + `(replacements); +function buildGlobal(allowlist) { + const namespace = identifier("babelHelpers"); + const body = []; + const container = functionExpression(null, [identifier("global")], blockStatement(body)); + const tree = program([expressionStatement(callExpression(container, [ + conditionalExpression(binaryExpression("===", unaryExpression("typeof", identifier("global")), stringLiteral("undefined")), identifier("self"), identifier("global"))]))]); + body.push(variableDeclaration("var", [variableDeclarator(namespace, assignmentExpression("=", memberExpression(identifier("global"), namespace), objectExpression([])))])); + buildHelpers(body, namespace, allowlist); + return tree; +} +function buildModule(allowlist) { + const body = []; + const refs = buildHelpers(body, null, allowlist); + body.unshift(exportNamedDeclaration(null, Object.keys(refs).map(name => { + return exportSpecifier(cloneNode(refs[name]), identifier(name)); + }))); + return program(body, [], "module"); +} +function buildUmd(allowlist) { + const namespace = identifier("babelHelpers"); + const body = []; + body.push(variableDeclaration("var", [variableDeclarator(namespace, identifier("global"))])); + buildHelpers(body, namespace, allowlist); + return program([buildUmdWrapper({ + FACTORY_PARAMETERS: identifier("global"), + BROWSER_ARGUMENTS: assignmentExpression("=", memberExpression(identifier("root"), namespace), objectExpression([])), + COMMON_ARGUMENTS: identifier("exports"), + AMD_ARGUMENTS: arrayExpression([stringLiteral("exports")]), + FACTORY_BODY: body, + UMD_ROOT: identifier("this") + })]); +} +function buildVar(allowlist) { + const namespace = identifier("babelHelpers"); + const body = []; + body.push(variableDeclaration("var", [variableDeclarator(namespace, objectExpression([]))])); + const tree = program(body); + buildHelpers(body, namespace, allowlist); + body.push(expressionStatement(namespace)); + return tree; +} +function buildHelpers(body, namespace, allowlist) { + const getHelperReference = name => { + return namespace ? memberExpression(namespace, identifier(name)) : identifier(`_${name}`); + }; + const refs = {}; + helpers().list.forEach(function (name) { + if (allowlist && allowlist.indexOf(name) < 0) return; + const ref = refs[name] = getHelperReference(name); + helpers().ensure(name, _file.default); + const { + nodes + } = helpers().get(name, getHelperReference, ref); + body.push(...nodes); + }); + return refs; +} +function _default(allowlist, outputType = "global") { + let tree; + const build = { + global: buildGlobal, + module: buildModule, + umd: buildUmd, + var: buildVar + }[outputType]; + if (build) { + tree = build(allowlist); + } else { + throw new Error(`Unsupported output type ${outputType}`); + } + return (0, _generator().default)(tree).code; +} +0 && 0; + +//# sourceMappingURL=build-external-helpers.js.map diff --git a/node_modules/@babel/core/lib/tools/build-external-helpers.js.map b/node_modules/@babel/core/lib/tools/build-external-helpers.js.map new file mode 100755 index 0000000..8fe76f5 --- /dev/null +++ b/node_modules/@babel/core/lib/tools/build-external-helpers.js.map @@ -0,0 +1 @@ +{"version":3,"names":["arrayExpression","assignmentExpression","binaryExpression","blockStatement","callExpression","cloneNode","conditionalExpression","exportNamedDeclaration","exportSpecifier","expressionStatement","functionExpression","identifier","memberExpression","objectExpression","program","stringLiteral","unaryExpression","variableDeclaration","variableDeclarator","buildUmdWrapper","replacements","template","statement","buildGlobal","allowlist","namespace","body","container","tree","push","buildHelpers","buildModule","refs","unshift","Object","keys","map","name","buildUmd","FACTORY_PARAMETERS","BROWSER_ARGUMENTS","COMMON_ARGUMENTS","AMD_ARGUMENTS","FACTORY_BODY","UMD_ROOT","buildVar","getHelperReference","helpers","list","forEach","indexOf","ref","ensure","File","nodes","get","outputType","build","global","module","umd","var","Error","generator","code"],"sources":["../../src/tools/build-external-helpers.ts"],"sourcesContent":["import * as helpers from \"@babel/helpers\";\nimport generator from \"@babel/generator\";\nimport template from \"@babel/template\";\nimport {\n arrayExpression,\n assignmentExpression,\n binaryExpression,\n blockStatement,\n callExpression,\n cloneNode,\n conditionalExpression,\n exportNamedDeclaration,\n exportSpecifier,\n expressionStatement,\n functionExpression,\n identifier,\n memberExpression,\n objectExpression,\n program,\n stringLiteral,\n unaryExpression,\n variableDeclaration,\n variableDeclarator,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport File from \"../transformation/file/file\";\nimport type { PublicReplacements } from \"@babel/template/src/options\";\n\n// Wrapped to avoid wasting time parsing this when almost no-one uses\n// build-external-helpers.\nconst buildUmdWrapper = (replacements: PublicReplacements) =>\n template.statement`\n (function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(AMD_ARGUMENTS, factory);\n } else if (typeof exports === \"object\") {\n factory(COMMON_ARGUMENTS);\n } else {\n factory(BROWSER_ARGUMENTS);\n }\n })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n FACTORY_BODY\n });\n `(replacements);\n\nfunction buildGlobal(allowlist?: Array) {\n const namespace = identifier(\"babelHelpers\");\n\n const body: t.Statement[] = [];\n const container = functionExpression(\n null,\n [identifier(\"global\")],\n blockStatement(body),\n );\n const tree = program([\n expressionStatement(\n callExpression(container, [\n // typeof global === \"undefined\" ? self : global\n conditionalExpression(\n binaryExpression(\n \"===\",\n unaryExpression(\"typeof\", identifier(\"global\")),\n stringLiteral(\"undefined\"),\n ),\n identifier(\"self\"),\n identifier(\"global\"),\n ),\n ]),\n ),\n ]);\n\n body.push(\n variableDeclaration(\"var\", [\n variableDeclarator(\n namespace,\n assignmentExpression(\n \"=\",\n memberExpression(identifier(\"global\"), namespace),\n objectExpression([]),\n ),\n ),\n ]),\n );\n\n buildHelpers(body, namespace, allowlist);\n\n return tree;\n}\n\nfunction buildModule(allowlist?: Array) {\n const body: t.Statement[] = [];\n const refs = buildHelpers(body, null, allowlist);\n\n body.unshift(\n exportNamedDeclaration(\n null,\n Object.keys(refs).map(name => {\n return exportSpecifier(cloneNode(refs[name]), identifier(name));\n }),\n ),\n );\n\n return program(body, [], \"module\");\n}\n\nfunction buildUmd(allowlist?: Array) {\n const namespace = identifier(\"babelHelpers\");\n\n const body: t.Statement[] = [];\n body.push(\n variableDeclaration(\"var\", [\n variableDeclarator(namespace, identifier(\"global\")),\n ]),\n );\n\n buildHelpers(body, namespace, allowlist);\n\n return program([\n buildUmdWrapper({\n FACTORY_PARAMETERS: identifier(\"global\"),\n BROWSER_ARGUMENTS: assignmentExpression(\n \"=\",\n memberExpression(identifier(\"root\"), namespace),\n objectExpression([]),\n ),\n COMMON_ARGUMENTS: identifier(\"exports\"),\n AMD_ARGUMENTS: arrayExpression([stringLiteral(\"exports\")]),\n FACTORY_BODY: body,\n UMD_ROOT: identifier(\"this\"),\n }),\n ]);\n}\n\nfunction buildVar(allowlist?: Array) {\n const namespace = identifier(\"babelHelpers\");\n\n const body: t.Statement[] = [];\n body.push(\n variableDeclaration(\"var\", [\n variableDeclarator(namespace, objectExpression([])),\n ]),\n );\n const tree = program(body);\n buildHelpers(body, namespace, allowlist);\n body.push(expressionStatement(namespace));\n return tree;\n}\n\nfunction buildHelpers(\n body: t.Statement[],\n namespace: t.Expression,\n allowlist?: Array,\n): Record;\nfunction buildHelpers(\n body: t.Statement[],\n namespace: null,\n allowlist?: Array,\n): Record;\n\nfunction buildHelpers(\n body: t.Statement[],\n namespace: t.Expression | null,\n allowlist?: Array,\n) {\n const getHelperReference = (name: string) => {\n return namespace\n ? memberExpression(namespace, identifier(name))\n : identifier(`_${name}`);\n };\n\n const refs: { [key: string]: t.Identifier | t.MemberExpression } = {};\n helpers.list.forEach(function (name) {\n if (allowlist && allowlist.indexOf(name) < 0) return;\n\n const ref = (refs[name] = getHelperReference(name));\n\n helpers.ensure(name, File);\n const { nodes } = helpers.get(name, getHelperReference, ref);\n\n body.push(...nodes);\n });\n return refs;\n}\nexport default function (\n allowlist?: Array,\n outputType: \"global\" | \"module\" | \"umd\" | \"var\" = \"global\",\n) {\n let tree: t.Program;\n\n const build = {\n global: buildGlobal,\n module: buildModule,\n umd: buildUmd,\n var: buildVar,\n }[outputType];\n\n if (build) {\n tree = build(allowlist);\n } else {\n throw new Error(`Unsupported output type ${outputType}`);\n }\n\n return generator(tree).code;\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transform-ast.js b/node_modules/@babel/core/lib/transform-ast.js new file mode 100755 index 0000000..ac9819b --- /dev/null +++ b/node_modules/@babel/core/lib/transform-ast.js @@ -0,0 +1,51 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transformFromAst = void 0; +exports.transformFromAstAsync = transformFromAstAsync; +exports.transformFromAstSync = transformFromAstSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _config = require("./config"); +var _transformation = require("./transformation"); +var _rewriteStackTrace = require("./errors/rewrite-stack-trace"); +const transformFromAstRunner = _gensync()(function* (ast, code, opts) { + const config = yield* (0, _config.default)(opts); + if (config === null) return null; + if (!ast) throw new Error("No AST given"); + return yield* (0, _transformation.run)(config, code, ast); +}); +const transformFromAst = function transformFromAst(ast, code, optsOrCallback, maybeCallback) { + let opts; + let callback; + if (typeof optsOrCallback === "function") { + callback = optsOrCallback; + opts = undefined; + } else { + opts = optsOrCallback; + callback = maybeCallback; + } + if (callback === undefined) { + { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.sync)(ast, code, opts); + } + } + (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.errback)(ast, code, opts, callback); +}; +exports.transformFromAst = transformFromAst; +function transformFromAstSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.sync)(...args); +} +function transformFromAstAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.async)(...args); +} +0 && 0; + +//# sourceMappingURL=transform-ast.js.map diff --git a/node_modules/@babel/core/lib/transform-ast.js.map b/node_modules/@babel/core/lib/transform-ast.js.map new file mode 100755 index 0000000..e4297a1 --- /dev/null +++ b/node_modules/@babel/core/lib/transform-ast.js.map @@ -0,0 +1 @@ +{"version":3,"names":["transformFromAstRunner","gensync","ast","code","opts","config","loadConfig","Error","run","transformFromAst","optsOrCallback","maybeCallback","callback","undefined","beginHiddenCallStack","sync","errback","transformFromAstSync","args","transformFromAstAsync","async"],"sources":["../src/transform-ast.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config\";\nimport type { InputOptions, ResolvedConfig } from \"./config\";\nimport { run } from \"./transformation\";\nimport type * as t from \"@babel/types\";\n\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace\";\n\nimport type { FileResult, FileResultCallback } from \"./transformation\";\ntype AstRoot = t.File | t.Program;\n\ntype TransformFromAst = {\n (ast: AstRoot, code: string, callback: FileResultCallback): void;\n (\n ast: AstRoot,\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n ): void;\n (ast: AstRoot, code: string, opts?: InputOptions | null): FileResult | null;\n};\n\nconst transformFromAstRunner = gensync(function* (\n ast: AstRoot,\n code: string,\n opts: InputOptions | undefined | null,\n): Handler {\n const config: ResolvedConfig | null = yield* loadConfig(opts);\n if (config === null) return null;\n\n if (!ast) throw new Error(\"No AST given\");\n\n return yield* run(config, code, ast);\n});\n\nexport const transformFromAst: TransformFromAst = function transformFromAst(\n ast,\n code,\n optsOrCallback?: InputOptions | null | undefined | FileResultCallback,\n maybeCallback?: FileResultCallback,\n) {\n let opts: InputOptions | undefined | null;\n let callback: FileResultCallback | undefined;\n if (typeof optsOrCallback === \"function\") {\n callback = optsOrCallback;\n opts = undefined;\n } else {\n opts = optsOrCallback;\n callback = maybeCallback;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'transformFromAst' function expects a callback. If you need to call it synchronously, please use 'transformFromAstSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'transformFromAst' function will expect a callback. If you need to call it synchronously, please use 'transformFromAstSync'.\",\n // );\n return beginHiddenCallStack(transformFromAstRunner.sync)(ast, code, opts);\n }\n }\n\n beginHiddenCallStack(transformFromAstRunner.errback)(\n ast,\n code,\n opts,\n callback,\n );\n};\n\nexport function transformFromAstSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformFromAstRunner.sync)(...args);\n}\n\nexport function transformFromAstAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformFromAstRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;AAEA;AAGA;AAgBA,MAAMA,sBAAsB,GAAGC,UAAO,CAAC,WACrCC,GAAY,EACZC,IAAY,EACZC,IAAqC,EACT;EAC5B,MAAMC,MAA6B,GAAG,OAAO,IAAAC,eAAU,EAACF,IAAI,CAAC;EAC7D,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,IAAI,CAACH,GAAG,EAAE,MAAM,IAAIK,KAAK,CAAC,cAAc,CAAC;EAEzC,OAAO,OAAO,IAAAC,mBAAG,EAACH,MAAM,EAAEF,IAAI,EAAED,GAAG,CAAC;AACtC,CAAC,CAAC;AAEK,MAAMO,gBAAkC,GAAG,SAASA,gBAAgB,CACzEP,GAAG,EACHC,IAAI,EACJO,cAAqE,EACrEC,aAAkC,EAClC;EACA,IAAIP,IAAqC;EACzC,IAAIQ,QAAwC;EAC5C,IAAI,OAAOF,cAAc,KAAK,UAAU,EAAE;IACxCE,QAAQ,GAAGF,cAAc;IACzBN,IAAI,GAAGS,SAAS;EAClB,CAAC,MAAM;IACLT,IAAI,GAAGM,cAAc;IACrBE,QAAQ,GAAGD,aAAa;EAC1B;EAEA,IAAIC,QAAQ,KAAKC,SAAS,EAAE;IAKnB;MAIL,OAAO,IAAAC,uCAAoB,EAACd,sBAAsB,CAACe,IAAI,CAAC,CAACb,GAAG,EAAEC,IAAI,EAAEC,IAAI,CAAC;IAC3E;EACF;EAEA,IAAAU,uCAAoB,EAACd,sBAAsB,CAACgB,OAAO,CAAC,CAClDd,GAAG,EACHC,IAAI,EACJC,IAAI,EACJQ,QAAQ,CACT;AACH,CAAC;AAAC;AAEK,SAASK,oBAAoB,CAClC,GAAGC,IAAoD,EACvD;EACA,OAAO,IAAAJ,uCAAoB,EAACd,sBAAsB,CAACe,IAAI,CAAC,CAAC,GAAGG,IAAI,CAAC;AACnE;AAEO,SAASC,qBAAqB,CACnC,GAAGD,IAAqD,EACxD;EACA,OAAO,IAAAJ,uCAAoB,EAACd,sBAAsB,CAACoB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AACpE;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transform-file-browser.js b/node_modules/@babel/core/lib/transform-file-browser.js new file mode 100755 index 0000000..a14110f --- /dev/null +++ b/node_modules/@babel/core/lib/transform-file-browser.js @@ -0,0 +1,25 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transformFile = void 0; +exports.transformFileAsync = transformFileAsync; +exports.transformFileSync = transformFileSync; + +const transformFile = function transformFile(filename, opts, callback) { + if (typeof opts === "function") { + callback = opts; + } + callback(new Error("Transforming files is not supported in browsers"), null); +}; +exports.transformFile = transformFile; +function transformFileSync() { + throw new Error("Transforming files is not supported in browsers"); +} +function transformFileAsync() { + return Promise.reject(new Error("Transforming files is not supported in browsers")); +} +0 && 0; + +//# sourceMappingURL=transform-file-browser.js.map diff --git a/node_modules/@babel/core/lib/transform-file-browser.js.map b/node_modules/@babel/core/lib/transform-file-browser.js.map new file mode 100755 index 0000000..9f800ed --- /dev/null +++ b/node_modules/@babel/core/lib/transform-file-browser.js.map @@ -0,0 +1 @@ +{"version":3,"names":["transformFile","filename","opts","callback","Error","transformFileSync","transformFileAsync","Promise","reject"],"sources":["../src/transform-file-browser.ts"],"sourcesContent":["// duplicated from transform-file so we do not have to import anything here\ntype TransformFile = {\n (filename: string, callback: (error: Error, file: null) => void): void;\n (\n filename: string,\n opts: any,\n callback: (error: Error, file: null) => void,\n ): void;\n};\n\nexport const transformFile: TransformFile = function transformFile(\n filename,\n opts,\n callback?: (error: Error, file: null) => void,\n) {\n if (typeof opts === \"function\") {\n callback = opts;\n }\n\n callback(new Error(\"Transforming files is not supported in browsers\"), null);\n};\n\nexport function transformFileSync(): never {\n throw new Error(\"Transforming files is not supported in browsers\");\n}\n\nexport function transformFileAsync() {\n return Promise.reject(\n new Error(\"Transforming files is not supported in browsers\"),\n );\n}\n"],"mappings":";;;;;;;;;AAUO,MAAMA,aAA4B,GAAG,SAASA,aAAa,CAChEC,QAAQ,EACRC,IAAI,EACJC,QAA6C,EAC7C;EACA,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;IAC9BC,QAAQ,GAAGD,IAAI;EACjB;EAEAC,QAAQ,CAAC,IAAIC,KAAK,CAAC,iDAAiD,CAAC,EAAE,IAAI,CAAC;AAC9E,CAAC;AAAC;AAEK,SAASC,iBAAiB,GAAU;EACzC,MAAM,IAAID,KAAK,CAAC,iDAAiD,CAAC;AACpE;AAEO,SAASE,kBAAkB,GAAG;EACnC,OAAOC,OAAO,CAACC,MAAM,CACnB,IAAIJ,KAAK,CAAC,iDAAiD,CAAC,CAC7D;AACH;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transform-file.js b/node_modules/@babel/core/lib/transform-file.js new file mode 100755 index 0000000..6d87307 --- /dev/null +++ b/node_modules/@babel/core/lib/transform-file.js @@ -0,0 +1,41 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transformFile = transformFile; +exports.transformFileAsync = transformFileAsync; +exports.transformFileSync = transformFileSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _config = require("./config"); +var _transformation = require("./transformation"); +var fs = require("./gensync-utils/fs"); +({}); +const transformFileRunner = _gensync()(function* (filename, opts) { + const options = Object.assign({}, opts, { + filename + }); + const config = yield* (0, _config.default)(options); + if (config === null) return null; + const code = yield* fs.readFile(filename, "utf8"); + return yield* (0, _transformation.run)(config, code); +}); + +function transformFile(...args) { + return transformFileRunner.errback(...args); +} +function transformFileSync(...args) { + return transformFileRunner.sync(...args); +} +function transformFileAsync(...args) { + return transformFileRunner.async(...args); +} +0 && 0; + +//# sourceMappingURL=transform-file.js.map diff --git a/node_modules/@babel/core/lib/transform-file.js.map b/node_modules/@babel/core/lib/transform-file.js.map new file mode 100755 index 0000000..88e32a6 --- /dev/null +++ b/node_modules/@babel/core/lib/transform-file.js.map @@ -0,0 +1 @@ +{"version":3,"names":["transformFileRunner","gensync","filename","opts","options","config","loadConfig","code","fs","readFile","run","transformFile","args","errback","transformFileSync","sync","transformFileAsync","async"],"sources":["../src/transform-file.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config\";\nimport type { InputOptions, ResolvedConfig } from \"./config\";\nimport { run } from \"./transformation\";\nimport type { FileResult, FileResultCallback } from \"./transformation\";\nimport * as fs from \"./gensync-utils/fs\";\n\ntype transformFileBrowserType = typeof import(\"./transform-file-browser\");\ntype transformFileType = typeof import(\"./transform-file\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of transform-file-browser, since this file may be replaced at bundle time with\n// transform-file-browser.\n({} as any as transformFileBrowserType as transformFileType);\n\nconst transformFileRunner = gensync(function* (\n filename: string,\n opts?: InputOptions,\n): Handler {\n const options = { ...opts, filename };\n\n const config: ResolvedConfig | null = yield* loadConfig(options);\n if (config === null) return null;\n\n const code = yield* fs.readFile(filename, \"utf8\");\n return yield* run(config, code);\n});\n\n// @ts-expect-error TS doesn't detect that this signature is compatible\nexport function transformFile(\n filename: string,\n callback: FileResultCallback,\n): void;\nexport function transformFile(\n filename: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n): void;\nexport function transformFile(\n ...args: Parameters\n) {\n return transformFileRunner.errback(...args);\n}\n\nexport function transformFileSync(\n ...args: Parameters\n) {\n return transformFileRunner.sync(...args);\n}\nexport function transformFileAsync(\n ...args: Parameters\n) {\n return transformFileRunner.async(...args);\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;AAEA;AAEA;AAQA,CAAC,CAAC,CAAC;AAEH,MAAMA,mBAAmB,GAAGC,UAAO,CAAC,WAClCC,QAAgB,EAChBC,IAAmB,EACS;EAC5B,MAAMC,OAAO,qBAAQD,IAAI;IAAED;EAAQ,EAAE;EAErC,MAAMG,MAA6B,GAAG,OAAO,IAAAC,eAAU,EAACF,OAAO,CAAC;EAChE,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,MAAME,IAAI,GAAG,OAAOC,EAAE,CAACC,QAAQ,CAACP,QAAQ,EAAE,MAAM,CAAC;EACjD,OAAO,OAAO,IAAAQ,mBAAG,EAACL,MAAM,EAAEE,IAAI,CAAC;AACjC,CAAC,CAAC;;AAYK,SAASI,aAAa,CAC3B,GAAGC,IAAoD,EACvD;EACA,OAAOZ,mBAAmB,CAACa,OAAO,CAAC,GAAGD,IAAI,CAAC;AAC7C;AAEO,SAASE,iBAAiB,CAC/B,GAAGF,IAAiD,EACpD;EACA,OAAOZ,mBAAmB,CAACe,IAAI,CAAC,GAAGH,IAAI,CAAC;AAC1C;AACO,SAASI,kBAAkB,CAChC,GAAGJ,IAAkD,EACrD;EACA,OAAOZ,mBAAmB,CAACiB,KAAK,CAAC,GAAGL,IAAI,CAAC;AAC3C;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transform.js b/node_modules/@babel/core/lib/transform.js new file mode 100755 index 0000000..e523a53 --- /dev/null +++ b/node_modules/@babel/core/lib/transform.js @@ -0,0 +1,50 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transform = void 0; +exports.transformAsync = transformAsync; +exports.transformSync = transformSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _config = require("./config"); +var _transformation = require("./transformation"); +var _rewriteStackTrace = require("./errors/rewrite-stack-trace"); +const transformRunner = _gensync()(function* transform(code, opts) { + const config = yield* (0, _config.default)(opts); + if (config === null) return null; + return yield* (0, _transformation.run)(config, code); +}); +const transform = function transform(code, optsOrCallback, maybeCallback) { + let opts; + let callback; + if (typeof optsOrCallback === "function") { + callback = optsOrCallback; + opts = undefined; + } else { + opts = optsOrCallback; + callback = maybeCallback; + } + if (callback === undefined) { + { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.sync)(code, opts); + } + } + (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.errback)(code, opts, callback); +}; +exports.transform = transform; +function transformSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.sync)(...args); +} +function transformAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.async)(...args); +} +0 && 0; + +//# sourceMappingURL=transform.js.map diff --git a/node_modules/@babel/core/lib/transform.js.map b/node_modules/@babel/core/lib/transform.js.map new file mode 100755 index 0000000..cc6a810 --- /dev/null +++ b/node_modules/@babel/core/lib/transform.js.map @@ -0,0 +1 @@ +{"version":3,"names":["transformRunner","gensync","transform","code","opts","config","loadConfig","run","optsOrCallback","maybeCallback","callback","undefined","beginHiddenCallStack","sync","errback","transformSync","args","transformAsync","async"],"sources":["../src/transform.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config\";\nimport type { InputOptions, ResolvedConfig } from \"./config\";\nimport { run } from \"./transformation\";\n\nimport type { FileResult, FileResultCallback } from \"./transformation\";\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace\";\n\nexport type { FileResult } from \"./transformation\";\n\ntype Transform = {\n (code: string, callback: FileResultCallback): void;\n (\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n ): void;\n (code: string, opts?: InputOptions | null): FileResult | null;\n};\n\nconst transformRunner = gensync(function* transform(\n code: string,\n opts?: InputOptions,\n): Handler {\n const config: ResolvedConfig | null = yield* loadConfig(opts);\n if (config === null) return null;\n\n return yield* run(config, code);\n});\n\nexport const transform: Transform = function transform(\n code,\n optsOrCallback?: InputOptions | null | undefined | FileResultCallback,\n maybeCallback?: FileResultCallback,\n) {\n let opts: InputOptions | undefined | null;\n let callback: FileResultCallback | undefined;\n if (typeof optsOrCallback === \"function\") {\n callback = optsOrCallback;\n opts = undefined;\n } else {\n opts = optsOrCallback;\n callback = maybeCallback;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'transform' function expects a callback. If you need to call it synchronously, please use 'transformSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'transform' function will expect a callback. If you need to call it synchronously, please use 'transformSync'.\",\n // );\n return beginHiddenCallStack(transformRunner.sync)(code, opts);\n }\n }\n\n beginHiddenCallStack(transformRunner.errback)(code, opts, callback);\n};\n\nexport function transformSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformRunner.sync)(...args);\n}\nexport function transformAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;AAEA;AAGA;AAcA,MAAMA,eAAe,GAAGC,UAAO,CAAC,UAAUC,SAAS,CACjDC,IAAY,EACZC,IAAmB,EACS;EAC5B,MAAMC,MAA6B,GAAG,OAAO,IAAAC,eAAU,EAACF,IAAI,CAAC;EAC7D,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,OAAO,OAAO,IAAAE,mBAAG,EAACF,MAAM,EAAEF,IAAI,CAAC;AACjC,CAAC,CAAC;AAEK,MAAMD,SAAoB,GAAG,SAASA,SAAS,CACpDC,IAAI,EACJK,cAAqE,EACrEC,aAAkC,EAClC;EACA,IAAIL,IAAqC;EACzC,IAAIM,QAAwC;EAC5C,IAAI,OAAOF,cAAc,KAAK,UAAU,EAAE;IACxCE,QAAQ,GAAGF,cAAc;IACzBJ,IAAI,GAAGO,SAAS;EAClB,CAAC,MAAM;IACLP,IAAI,GAAGI,cAAc;IACrBE,QAAQ,GAAGD,aAAa;EAC1B;EAEA,IAAIC,QAAQ,KAAKC,SAAS,EAAE;IAKnB;MAIL,OAAO,IAAAC,uCAAoB,EAACZ,eAAe,CAACa,IAAI,CAAC,CAACV,IAAI,EAAEC,IAAI,CAAC;IAC/D;EACF;EAEA,IAAAQ,uCAAoB,EAACZ,eAAe,CAACc,OAAO,CAAC,CAACX,IAAI,EAAEC,IAAI,EAAEM,QAAQ,CAAC;AACrE,CAAC;AAAC;AAEK,SAASK,aAAa,CAC3B,GAAGC,IAA6C,EAChD;EACA,OAAO,IAAAJ,uCAAoB,EAACZ,eAAe,CAACa,IAAI,CAAC,CAAC,GAAGG,IAAI,CAAC;AAC5D;AACO,SAASC,cAAc,CAC5B,GAAGD,IAA8C,EACjD;EACA,OAAO,IAAAJ,uCAAoB,EAACZ,eAAe,CAACkB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AAC7D;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js b/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js new file mode 100755 index 0000000..0f0d350 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js @@ -0,0 +1,83 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = loadBlockHoistPlugin; +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +var _plugin = require("../config/plugin"); +let LOADED_PLUGIN; +const blockHoistPlugin = { + + name: "internal.blockHoist", + visitor: { + Block: { + exit({ + node + }) { + const { + body + } = node; + + let max = Math.pow(2, 30) - 1; + let hasChange = false; + for (let i = 0; i < body.length; i++) { + const n = body[i]; + const p = priority(n); + if (p > max) { + hasChange = true; + break; + } + max = p; + } + if (!hasChange) return; + + node.body = stableSort(body.slice()); + } + } + } +}; +function loadBlockHoistPlugin() { + if (!LOADED_PLUGIN) { + LOADED_PLUGIN = new _plugin.default(Object.assign({}, blockHoistPlugin, { + visitor: _traverse().default.explode(blockHoistPlugin.visitor) + }), {}); + } + return LOADED_PLUGIN; +} +function priority(bodyNode) { + const priority = bodyNode == null ? void 0 : bodyNode._blockHoist; + if (priority == null) return 1; + if (priority === true) return 2; + return priority; +} +function stableSort(body) { + const buckets = Object.create(null); + + for (let i = 0; i < body.length; i++) { + const n = body[i]; + const p = priority(n); + + const bucket = buckets[p] || (buckets[p] = []); + bucket.push(n); + } + + const keys = Object.keys(buckets).map(k => +k).sort((a, b) => b - a); + let index = 0; + for (const key of keys) { + const bucket = buckets[key]; + for (const n of bucket) { + body[index++] = n; + } + } + return body; +} +0 && 0; + +//# sourceMappingURL=block-hoist-plugin.js.map diff --git a/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map b/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map new file mode 100755 index 0000000..231cadd --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map @@ -0,0 +1 @@ +{"version":3,"names":["LOADED_PLUGIN","blockHoistPlugin","name","visitor","Block","exit","node","body","max","hasChange","i","length","n","p","priority","stableSort","slice","loadBlockHoistPlugin","Plugin","traverse","explode","bodyNode","_blockHoist","buckets","Object","create","bucket","push","keys","map","k","sort","a","b","index","key"],"sources":["../../src/transformation/block-hoist-plugin.ts"],"sourcesContent":["import traverse from \"@babel/traverse\";\nimport type { Statement } from \"@babel/types\";\nimport type { PluginObject } from \"../config\";\nimport Plugin from \"../config/plugin\";\n\nlet LOADED_PLUGIN: Plugin | void;\n\nconst blockHoistPlugin: PluginObject = {\n /**\n * [Please add a description.]\n *\n * Priority:\n *\n * - 0 We want this to be at the **very** bottom\n * - 1 Default node position\n * - 2 Priority over normal nodes\n * - 3 We want this to be at the **very** top\n * - 4 Reserved for the helpers used to implement module imports.\n */\n\n name: \"internal.blockHoist\",\n\n visitor: {\n Block: {\n exit({ node }) {\n const { body } = node;\n\n // Largest SMI\n let max = 2 ** 30 - 1;\n let hasChange = false;\n for (let i = 0; i < body.length; i++) {\n const n = body[i];\n const p = priority(n);\n if (p > max) {\n hasChange = true;\n break;\n }\n max = p;\n }\n if (!hasChange) return;\n\n // My kingdom for a stable sort!\n node.body = stableSort(body.slice());\n },\n },\n },\n};\n\nexport default function loadBlockHoistPlugin(): Plugin {\n if (!LOADED_PLUGIN) {\n // cache the loaded blockHoist plugin plugin\n LOADED_PLUGIN = new Plugin(\n {\n ...blockHoistPlugin,\n visitor: traverse.explode(blockHoistPlugin.visitor),\n },\n {},\n );\n }\n\n return LOADED_PLUGIN;\n}\n\nfunction priority(bodyNode: Statement & { _blockHoist?: number | true }) {\n const priority = bodyNode?._blockHoist;\n if (priority == null) return 1;\n if (priority === true) return 2;\n return priority;\n}\n\nfunction stableSort(body: Statement[]) {\n // By default, we use priorities of 0-4.\n const buckets = Object.create(null);\n\n // By collecting into buckets, we can guarantee a stable sort.\n for (let i = 0; i < body.length; i++) {\n const n = body[i];\n const p = priority(n);\n\n // In case some plugin is setting an unexpected priority.\n const bucket = buckets[p] || (buckets[p] = []);\n bucket.push(n);\n }\n\n // Sort our keys in descending order. Keys are unique, so we don't have to\n // worry about stability.\n const keys = Object.keys(buckets)\n .map(k => +k)\n .sort((a, b) => b - a);\n\n let index = 0;\n for (const key of keys) {\n const bucket = buckets[key];\n for (const n of bucket) {\n body[index++] = n;\n }\n }\n return body;\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;AAEA,IAAIA,aAA4B;AAEhC,MAAMC,gBAA8B,GAAG;;EAarCC,IAAI,EAAE,qBAAqB;EAE3BC,OAAO,EAAE;IACPC,KAAK,EAAE;MACLC,IAAI,CAAC;QAAEC;MAAK,CAAC,EAAE;QACb,MAAM;UAAEC;QAAK,CAAC,GAAGD,IAAI;;QAGrB,IAAIE,GAAG,GAAG,UAAC,EAAI,EAAE,IAAG,CAAC;QACrB,IAAIC,SAAS,GAAG,KAAK;QACrB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;UACpC,MAAME,CAAC,GAAGL,IAAI,CAACG,CAAC,CAAC;UACjB,MAAMG,CAAC,GAAGC,QAAQ,CAACF,CAAC,CAAC;UACrB,IAAIC,CAAC,GAAGL,GAAG,EAAE;YACXC,SAAS,GAAG,IAAI;YAChB;UACF;UACAD,GAAG,GAAGK,CAAC;QACT;QACA,IAAI,CAACJ,SAAS,EAAE;;QAGhBH,IAAI,CAACC,IAAI,GAAGQ,UAAU,CAACR,IAAI,CAACS,KAAK,EAAE,CAAC;MACtC;IACF;EACF;AACF,CAAC;AAEc,SAASC,oBAAoB,GAAW;EACrD,IAAI,CAACjB,aAAa,EAAE;IAElBA,aAAa,GAAG,IAAIkB,eAAM,mBAEnBjB,gBAAgB;MACnBE,OAAO,EAAEgB,mBAAQ,CAACC,OAAO,CAACnB,gBAAgB,CAACE,OAAO;IAAC,IAErD,CAAC,CAAC,CACH;EACH;EAEA,OAAOH,aAAa;AACtB;AAEA,SAASc,QAAQ,CAACO,QAAqD,EAAE;EACvE,MAAMP,QAAQ,GAAGO,QAAQ,oBAARA,QAAQ,CAAEC,WAAW;EACtC,IAAIR,QAAQ,IAAI,IAAI,EAAE,OAAO,CAAC;EAC9B,IAAIA,QAAQ,KAAK,IAAI,EAAE,OAAO,CAAC;EAC/B,OAAOA,QAAQ;AACjB;AAEA,SAASC,UAAU,CAACR,IAAiB,EAAE;EAErC,MAAMgB,OAAO,GAAGC,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC;;EAGnC,KAAK,IAAIf,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAME,CAAC,GAAGL,IAAI,CAACG,CAAC,CAAC;IACjB,MAAMG,CAAC,GAAGC,QAAQ,CAACF,CAAC,CAAC;;IAGrB,MAAMc,MAAM,GAAGH,OAAO,CAACV,CAAC,CAAC,KAAKU,OAAO,CAACV,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9Ca,MAAM,CAACC,IAAI,CAACf,CAAC,CAAC;EAChB;;EAIA,MAAMgB,IAAI,GAAGJ,MAAM,CAACI,IAAI,CAACL,OAAO,CAAC,CAC9BM,GAAG,CAACC,CAAC,IAAI,CAACA,CAAC,CAAC,CACZC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,GAAGD,CAAC,CAAC;EAExB,IAAIE,KAAK,GAAG,CAAC;EACb,KAAK,MAAMC,GAAG,IAAIP,IAAI,EAAE;IACtB,MAAMF,MAAM,GAAGH,OAAO,CAACY,GAAG,CAAC;IAC3B,KAAK,MAAMvB,CAAC,IAAIc,MAAM,EAAE;MACtBnB,IAAI,CAAC2B,KAAK,EAAE,CAAC,GAAGtB,CAAC;IACnB;EACF;EACA,OAAOL,IAAI;AACb;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/file/file.js b/node_modules/@babel/core/lib/transformation/file/file.js new file mode 100755 index 0000000..77d941f --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/file/file.js @@ -0,0 +1,215 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +function helpers() { + const data = require("@babel/helpers"); + helpers = function () { + return data; + }; + return data; +} +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +function _codeFrame() { + const data = require("@babel/code-frame"); + _codeFrame = function () { + return data; + }; + return data; +} +function _t() { + const data = require("@babel/types"); + _t = function () { + return data; + }; + return data; +} +function _helperModuleTransforms() { + const data = require("@babel/helper-module-transforms"); + _helperModuleTransforms = function () { + return data; + }; + return data; +} +function _semver() { + const data = require("semver"); + _semver = function () { + return data; + }; + return data; +} +const { + cloneNode, + interpreterDirective +} = _t(); +const errorVisitor = { + enter(path, state) { + const loc = path.node.loc; + if (loc) { + state.loc = loc; + path.stop(); + } + } +}; +class File { + constructor(options, { + code, + ast, + inputMap + }) { + this._map = new Map(); + this.opts = void 0; + this.declarations = {}; + this.path = void 0; + this.ast = void 0; + this.scope = void 0; + this.metadata = {}; + this.code = ""; + this.inputMap = void 0; + this.hub = { + file: this, + getCode: () => this.code, + getScope: () => this.scope, + addHelper: this.addHelper.bind(this), + buildError: this.buildCodeFrameError.bind(this) + }; + this.opts = options; + this.code = code; + this.ast = ast; + this.inputMap = inputMap; + this.path = _traverse().NodePath.get({ + hub: this.hub, + parentPath: null, + parent: this.ast, + container: this.ast, + key: "program" + }).setContext(); + this.scope = this.path.scope; + } + + get shebang() { + const { + interpreter + } = this.path.node; + return interpreter ? interpreter.value : ""; + } + set shebang(value) { + if (value) { + this.path.get("interpreter").replaceWith(interpreterDirective(value)); + } else { + this.path.get("interpreter").remove(); + } + } + set(key, val) { + if (key === "helpersNamespace") { + throw new Error("Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility." + "If you are using @babel/plugin-external-helpers you will need to use a newer " + "version than the one you currently have installed. " + "If you have your own implementation, you'll want to explore using 'helperGenerator' " + "alongside 'file.availableHelper()'."); + } + this._map.set(key, val); + } + get(key) { + return this._map.get(key); + } + has(key) { + return this._map.has(key); + } + getModuleName() { + return (0, _helperModuleTransforms().getModuleName)(this.opts, this.opts); + } + addImport() { + throw new Error("This API has been removed. If you're looking for this " + "functionality in Babel 7, you should import the " + "'@babel/helper-module-imports' module and use the functions exposed " + " from that module, such as 'addNamed' or 'addDefault'."); + } + + availableHelper(name, versionRange) { + let minVersion; + try { + minVersion = helpers().minVersion(name); + } catch (err) { + if (err.code !== "BABEL_HELPER_UNKNOWN") throw err; + return false; + } + if (typeof versionRange !== "string") return true; + + if (_semver().valid(versionRange)) versionRange = `^${versionRange}`; + return !_semver().intersects(`<${minVersion}`, versionRange) && !_semver().intersects(`>=8.0.0`, versionRange); + } + addHelper(name) { + const declar = this.declarations[name]; + if (declar) return cloneNode(declar); + const generator = this.get("helperGenerator"); + if (generator) { + const res = generator(name); + if (res) return res; + } + + helpers().ensure(name, File); + const uid = this.declarations[name] = this.scope.generateUidIdentifier(name); + const dependencies = {}; + for (const dep of helpers().getDependencies(name)) { + dependencies[dep] = this.addHelper(dep); + } + const { + nodes, + globals + } = helpers().get(name, dep => dependencies[dep], uid, Object.keys(this.scope.getAllBindings())); + globals.forEach(name => { + if (this.path.scope.hasBinding(name, true)) { + this.path.scope.rename(name); + } + }); + nodes.forEach(node => { + node._compact = true; + }); + this.path.unshiftContainer("body", nodes); + this.path.get("body").forEach(path => { + if (nodes.indexOf(path.node) === -1) return; + if (path.isVariableDeclaration()) this.scope.registerDeclaration(path); + }); + return uid; + } + addTemplateObject() { + throw new Error("This function has been moved into the template literal transform itself."); + } + buildCodeFrameError(node, msg, _Error = SyntaxError) { + let loc = node && (node.loc || node._loc); + if (!loc && node) { + const state = { + loc: null + }; + (0, _traverse().default)(node, errorVisitor, this.scope, state); + loc = state.loc; + let txt = "This is an error on an internal node. Probably an internal error."; + if (loc) txt += " Location has been estimated."; + msg += ` (${txt})`; + } + if (loc) { + const { + highlightCode = true + } = this.opts; + msg += "\n" + (0, _codeFrame().codeFrameColumns)(this.code, { + start: { + line: loc.start.line, + column: loc.start.column + 1 + }, + end: loc.end && loc.start.line === loc.end.line ? { + line: loc.end.line, + column: loc.end.column + 1 + } : undefined + }, { + highlightCode + }); + } + return new _Error(msg); + } +} +exports.default = File; +0 && 0; + +//# sourceMappingURL=file.js.map diff --git a/node_modules/@babel/core/lib/transformation/file/file.js.map b/node_modules/@babel/core/lib/transformation/file/file.js.map new file mode 100755 index 0000000..6eefae2 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/file/file.js.map @@ -0,0 +1 @@ +{"version":3,"names":["cloneNode","interpreterDirective","errorVisitor","enter","path","state","loc","node","stop","File","constructor","options","code","ast","inputMap","_map","Map","opts","declarations","scope","metadata","hub","file","getCode","getScope","addHelper","bind","buildError","buildCodeFrameError","NodePath","get","parentPath","parent","container","key","setContext","shebang","interpreter","value","replaceWith","remove","set","val","Error","has","getModuleName","addImport","availableHelper","name","versionRange","minVersion","helpers","err","semver","valid","intersects","declar","generator","res","ensure","uid","generateUidIdentifier","dependencies","dep","getDependencies","nodes","globals","Object","keys","getAllBindings","forEach","hasBinding","rename","_compact","unshiftContainer","indexOf","isVariableDeclaration","registerDeclaration","addTemplateObject","msg","_Error","SyntaxError","_loc","traverse","txt","highlightCode","codeFrameColumns","start","line","column","end","undefined"],"sources":["../../../src/transformation/file/file.ts"],"sourcesContent":["import * as helpers from \"@babel/helpers\";\nimport { NodePath } from \"@babel/traverse\";\nimport type { HubInterface, Visitor, Scope } from \"@babel/traverse\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport traverse from \"@babel/traverse\";\nimport { cloneNode, interpreterDirective } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { getModuleName } from \"@babel/helper-module-transforms\";\nimport semver from \"semver\";\n\nimport type { NormalizedFile } from \"../normalize-file\";\n\nconst errorVisitor: Visitor<{ loc: NodeLocation[\"loc\"] | null }> = {\n enter(path, state) {\n const loc = path.node.loc;\n if (loc) {\n state.loc = loc;\n path.stop();\n }\n },\n};\n\nexport type NodeLocation = {\n loc?: {\n end?: {\n line: number;\n column: number;\n };\n start: {\n line: number;\n column: number;\n };\n };\n _loc?: {\n end?: {\n line: number;\n column: number;\n };\n start: {\n line: number;\n column: number;\n };\n };\n};\n\nexport default class File {\n _map: Map = new Map();\n opts: { [key: string]: any };\n declarations: { [key: string]: t.Identifier } = {};\n path: NodePath;\n ast: t.File;\n scope: Scope;\n metadata: { [key: string]: any } = {};\n code: string = \"\";\n inputMap: any;\n\n hub: HubInterface & { file: File } = {\n // keep it for the usage in babel-core, ex: path.hub.file.opts.filename\n file: this,\n getCode: () => this.code,\n getScope: () => this.scope,\n addHelper: this.addHelper.bind(this),\n buildError: this.buildCodeFrameError.bind(this),\n };\n\n constructor(options: {}, { code, ast, inputMap }: NormalizedFile) {\n this.opts = options;\n this.code = code;\n this.ast = ast;\n this.inputMap = inputMap;\n\n this.path = NodePath.get({\n hub: this.hub,\n parentPath: null,\n parent: this.ast,\n container: this.ast,\n key: \"program\",\n }).setContext() as NodePath;\n this.scope = this.path.scope;\n }\n\n /**\n * Provide backward-compatible access to the interpreter directive handling\n * in Babel 6.x. If you are writing a plugin for Babel 7.x, it would be\n * best to use 'program.interpreter' directly.\n */\n get shebang(): string {\n const { interpreter } = this.path.node;\n return interpreter ? interpreter.value : \"\";\n }\n set shebang(value: string) {\n if (value) {\n this.path.get(\"interpreter\").replaceWith(interpreterDirective(value));\n } else {\n this.path.get(\"interpreter\").remove();\n }\n }\n\n set(key: unknown, val: unknown) {\n if (key === \"helpersNamespace\") {\n throw new Error(\n \"Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility.\" +\n \"If you are using @babel/plugin-external-helpers you will need to use a newer \" +\n \"version than the one you currently have installed. \" +\n \"If you have your own implementation, you'll want to explore using 'helperGenerator' \" +\n \"alongside 'file.availableHelper()'.\",\n );\n }\n\n this._map.set(key, val);\n }\n\n get(key: unknown): any {\n return this._map.get(key);\n }\n\n has(key: unknown): boolean {\n return this._map.has(key);\n }\n\n getModuleName(): string | undefined | null {\n return getModuleName(this.opts, this.opts);\n }\n\n addImport() {\n throw new Error(\n \"This API has been removed. If you're looking for this \" +\n \"functionality in Babel 7, you should import the \" +\n \"'@babel/helper-module-imports' module and use the functions exposed \" +\n \" from that module, such as 'addNamed' or 'addDefault'.\",\n );\n }\n\n /**\n * Check if a given helper is available in @babel/core's helper list.\n *\n * This _also_ allows you to pass a Babel version specifically. If the\n * helper exists, but was not available for the full given range, it will be\n * considered unavailable.\n */\n availableHelper(name: string, versionRange?: string | null): boolean {\n let minVersion;\n try {\n minVersion = helpers.minVersion(name);\n } catch (err) {\n if (err.code !== \"BABEL_HELPER_UNKNOWN\") throw err;\n\n return false;\n }\n\n if (typeof versionRange !== \"string\") return true;\n\n // semver.intersects() has some surprising behavior with comparing ranges\n // with pre-release versions. We add '^' to ensure that we are always\n // comparing ranges with ranges, which sidesteps this logic.\n // For example:\n //\n // semver.intersects(`<7.0.1`, \"7.0.0-beta.0\") // false - surprising\n // semver.intersects(`<7.0.1`, \"^7.0.0-beta.0\") // true - expected\n //\n // This is because the first falls back to\n //\n // semver.satisfies(\"7.0.0-beta.0\", `<7.0.1`) // false - surprising\n //\n // and this fails because a prerelease version can only satisfy a range\n // if it is a prerelease within the same major/minor/patch range.\n //\n // Note: If this is found to have issues, please also revisit the logic in\n // transform-runtime's definitions.js file.\n if (semver.valid(versionRange)) versionRange = `^${versionRange}`;\n\n return (\n !semver.intersects(`<${minVersion}`, versionRange) &&\n !semver.intersects(`>=8.0.0`, versionRange)\n );\n }\n\n addHelper(name: string): t.Identifier {\n const declar = this.declarations[name];\n if (declar) return cloneNode(declar);\n\n const generator = this.get(\"helperGenerator\");\n if (generator) {\n const res = generator(name);\n if (res) return res;\n }\n\n // make sure that the helper exists\n helpers.ensure(name, File);\n\n const uid = (this.declarations[name] =\n this.scope.generateUidIdentifier(name));\n\n const dependencies: { [key: string]: t.Identifier } = {};\n for (const dep of helpers.getDependencies(name)) {\n dependencies[dep] = this.addHelper(dep);\n }\n\n const { nodes, globals } = helpers.get(\n name,\n dep => dependencies[dep],\n uid,\n Object.keys(this.scope.getAllBindings()),\n );\n\n globals.forEach(name => {\n if (this.path.scope.hasBinding(name, true /* noGlobals */)) {\n this.path.scope.rename(name);\n }\n });\n\n nodes.forEach(node => {\n // @ts-expect-error Fixme: document _compact node property\n node._compact = true;\n });\n\n this.path.unshiftContainer(\"body\", nodes);\n // TODO: NodePath#unshiftContainer should automatically register new\n // bindings.\n this.path.get(\"body\").forEach(path => {\n if (nodes.indexOf(path.node) === -1) return;\n if (path.isVariableDeclaration()) this.scope.registerDeclaration(path);\n });\n\n return uid;\n }\n\n addTemplateObject() {\n throw new Error(\n \"This function has been moved into the template literal transform itself.\",\n );\n }\n\n buildCodeFrameError(\n node: NodeLocation | undefined | null,\n msg: string,\n _Error: typeof Error = SyntaxError,\n ): Error {\n let loc = node && (node.loc || node._loc);\n\n if (!loc && node) {\n const state: { loc?: NodeLocation[\"loc\"] | null } = {\n loc: null,\n };\n traverse(node as t.Node, errorVisitor, this.scope, state);\n loc = state.loc;\n\n let txt =\n \"This is an error on an internal node. Probably an internal error.\";\n if (loc) txt += \" Location has been estimated.\";\n\n msg += ` (${txt})`;\n }\n\n if (loc) {\n const { highlightCode = true } = this.opts;\n\n msg +=\n \"\\n\" +\n codeFrameColumns(\n this.code,\n {\n start: {\n line: loc.start.line,\n column: loc.start.column + 1,\n },\n end:\n loc.end && loc.start.line === loc.end.line\n ? {\n line: loc.end.line,\n column: loc.end.column + 1,\n }\n : undefined,\n },\n { highlightCode },\n );\n }\n\n return new _Error(msg);\n }\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/file/generate.js b/node_modules/@babel/core/lib/transformation/file/generate.js new file mode 100755 index 0000000..b711469 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/file/generate.js @@ -0,0 +1,80 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = generateCode; +function _convertSourceMap() { + const data = require("convert-source-map"); + _convertSourceMap = function () { + return data; + }; + return data; +} +function _generator() { + const data = require("@babel/generator"); + _generator = function () { + return data; + }; + return data; +} +var _mergeMap = require("./merge-map"); +function generateCode(pluginPasses, file) { + const { + opts, + ast, + code, + inputMap + } = file; + const { + generatorOpts + } = opts; + const results = []; + for (const plugins of pluginPasses) { + for (const plugin of plugins) { + const { + generatorOverride + } = plugin; + if (generatorOverride) { + const result = generatorOverride(ast, generatorOpts, code, _generator().default); + if (result !== undefined) results.push(result); + } + } + } + let result; + if (results.length === 0) { + result = (0, _generator().default)(ast, generatorOpts, code); + } else if (results.length === 1) { + result = results[0]; + if (typeof result.then === "function") { + throw new Error(`You appear to be using an async codegen plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version.`); + } + } else { + throw new Error("More than one plugin attempted to override codegen."); + } + + let { + code: outputCode, + decodedMap: outputMap = result.map + } = result; + if (outputMap) { + if (inputMap) { + outputMap = (0, _mergeMap.default)(inputMap.toObject(), outputMap, generatorOpts.sourceFileName); + } else { + outputMap = result.map; + } + } + if (opts.sourceMaps === "inline" || opts.sourceMaps === "both") { + outputCode += "\n" + _convertSourceMap().fromObject(outputMap).toComment(); + } + if (opts.sourceMaps === "inline") { + outputMap = null; + } + return { + outputCode, + outputMap + }; +} +0 && 0; + +//# sourceMappingURL=generate.js.map diff --git a/node_modules/@babel/core/lib/transformation/file/generate.js.map b/node_modules/@babel/core/lib/transformation/file/generate.js.map new file mode 100755 index 0000000..c9fa3fd --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/file/generate.js.map @@ -0,0 +1 @@ +{"version":3,"names":["generateCode","pluginPasses","file","opts","ast","code","inputMap","generatorOpts","results","plugins","plugin","generatorOverride","result","generate","undefined","push","length","then","Error","outputCode","decodedMap","outputMap","map","mergeSourceMap","toObject","sourceFileName","sourceMaps","convertSourceMap","fromObject","toComment"],"sources":["../../../src/transformation/file/generate.ts"],"sourcesContent":["import type { PluginPasses } from \"../../config\";\nimport convertSourceMap from \"convert-source-map\";\ntype SourceMap = any;\nimport generate from \"@babel/generator\";\n\nimport type File from \"./file\";\nimport mergeSourceMap from \"./merge-map\";\n\nexport default function generateCode(\n pluginPasses: PluginPasses,\n file: File,\n): {\n outputCode: string;\n outputMap: SourceMap | null;\n} {\n const { opts, ast, code, inputMap } = file;\n const { generatorOpts } = opts;\n\n const results = [];\n for (const plugins of pluginPasses) {\n for (const plugin of plugins) {\n const { generatorOverride } = plugin;\n if (generatorOverride) {\n const result = generatorOverride(ast, generatorOpts, code, generate);\n\n if (result !== undefined) results.push(result);\n }\n }\n }\n\n let result;\n if (results.length === 0) {\n result = generate(ast, generatorOpts, code);\n } else if (results.length === 1) {\n result = results[0];\n\n if (typeof result.then === \"function\") {\n throw new Error(\n `You appear to be using an async codegen plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, ` +\n `you may need to upgrade your @babel/core version.`,\n );\n }\n } else {\n throw new Error(\"More than one plugin attempted to override codegen.\");\n }\n\n // Decoded maps are faster to merge, so we attempt to get use the decodedMap\n // first. But to preserve backwards compat with older Generator, we'll fall\n // back to the encoded map.\n let { code: outputCode, decodedMap: outputMap = result.map } = result;\n\n if (outputMap) {\n if (inputMap) {\n // mergeSourceMap returns an encoded map\n outputMap = mergeSourceMap(\n inputMap.toObject(),\n outputMap,\n generatorOpts.sourceFileName,\n );\n } else {\n // We cannot output a decoded map, so retrieve the encoded form. Because\n // the decoded form is free, it's fine to prioritize decoded first.\n outputMap = result.map;\n }\n }\n\n if (opts.sourceMaps === \"inline\" || opts.sourceMaps === \"both\") {\n outputCode += \"\\n\" + convertSourceMap.fromObject(outputMap).toComment();\n }\n\n if (opts.sourceMaps === \"inline\") {\n outputMap = null;\n }\n\n return { outputCode, outputMap };\n}\n"],"mappings":";;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;AAEe,SAASA,YAAY,CAClCC,YAA0B,EAC1BC,IAAU,EAIV;EACA,MAAM;IAAEC,IAAI;IAAEC,GAAG;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAGJ,IAAI;EAC1C,MAAM;IAAEK;EAAc,CAAC,GAAGJ,IAAI;EAE9B,MAAMK,OAAO,GAAG,EAAE;EAClB,KAAK,MAAMC,OAAO,IAAIR,YAAY,EAAE;IAClC,KAAK,MAAMS,MAAM,IAAID,OAAO,EAAE;MAC5B,MAAM;QAAEE;MAAkB,CAAC,GAAGD,MAAM;MACpC,IAAIC,iBAAiB,EAAE;QACrB,MAAMC,MAAM,GAAGD,iBAAiB,CAACP,GAAG,EAAEG,aAAa,EAAEF,IAAI,EAAEQ,oBAAQ,CAAC;QAEpE,IAAID,MAAM,KAAKE,SAAS,EAAEN,OAAO,CAACO,IAAI,CAACH,MAAM,CAAC;MAChD;IACF;EACF;EAEA,IAAIA,MAAM;EACV,IAAIJ,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;IACxBJ,MAAM,GAAG,IAAAC,oBAAQ,EAACT,GAAG,EAAEG,aAAa,EAAEF,IAAI,CAAC;EAC7C,CAAC,MAAM,IAAIG,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;IAC/BJ,MAAM,GAAGJ,OAAO,CAAC,CAAC,CAAC;IAEnB,IAAI,OAAOI,MAAM,CAACK,IAAI,KAAK,UAAU,EAAE;MACrC,MAAM,IAAIC,KAAK,CACZ,kDAAiD,GAC/C,wDAAuD,GACvD,sCAAqC,GACrC,mDAAkD,CACtD;IACH;EACF,CAAC,MAAM;IACL,MAAM,IAAIA,KAAK,CAAC,qDAAqD,CAAC;EACxE;;EAKA,IAAI;IAAEb,IAAI,EAAEc,UAAU;IAAEC,UAAU,EAAEC,SAAS,GAAGT,MAAM,CAACU;EAAI,CAAC,GAAGV,MAAM;EAErE,IAAIS,SAAS,EAAE;IACb,IAAIf,QAAQ,EAAE;MAEZe,SAAS,GAAG,IAAAE,iBAAc,EACxBjB,QAAQ,CAACkB,QAAQ,EAAE,EACnBH,SAAS,EACTd,aAAa,CAACkB,cAAc,CAC7B;IACH,CAAC,MAAM;MAGLJ,SAAS,GAAGT,MAAM,CAACU,GAAG;IACxB;EACF;EAEA,IAAInB,IAAI,CAACuB,UAAU,KAAK,QAAQ,IAAIvB,IAAI,CAACuB,UAAU,KAAK,MAAM,EAAE;IAC9DP,UAAU,IAAI,IAAI,GAAGQ,mBAAgB,CAACC,UAAU,CAACP,SAAS,CAAC,CAACQ,SAAS,EAAE;EACzE;EAEA,IAAI1B,IAAI,CAACuB,UAAU,KAAK,QAAQ,EAAE;IAChCL,SAAS,GAAG,IAAI;EAClB;EAEA,OAAO;IAAEF,UAAU;IAAEE;EAAU,CAAC;AAClC;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/file/merge-map.js b/node_modules/@babel/core/lib/transformation/file/merge-map.js new file mode 100755 index 0000000..62fab30 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/file/merge-map.js @@ -0,0 +1,39 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = mergeSourceMap; +function _remapping() { + const data = require("@ampproject/remapping"); + _remapping = function () { + return data; + }; + return data; +} +function mergeSourceMap(inputMap, map, sourceFileName) { + const source = sourceFileName.replace(/\\/g, "/"); + + let found = false; + const result = _remapping()(rootless(map), (s, ctx) => { + if (s === source && !found) { + found = true; + ctx.source = ""; + return rootless(inputMap); + } + return null; + }); + if (typeof inputMap.sourceRoot === "string") { + result.sourceRoot = inputMap.sourceRoot; + } + + return Object.assign({}, result); +} +function rootless(map) { + return Object.assign({}, map, { + sourceRoot: null + }); +} +0 && 0; + +//# sourceMappingURL=merge-map.js.map diff --git a/node_modules/@babel/core/lib/transformation/file/merge-map.js.map b/node_modules/@babel/core/lib/transformation/file/merge-map.js.map new file mode 100755 index 0000000..208fd32 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/file/merge-map.js.map @@ -0,0 +1 @@ +{"version":3,"names":["mergeSourceMap","inputMap","map","sourceFileName","source","replace","found","result","remapping","rootless","s","ctx","sourceRoot"],"sources":["../../../src/transformation/file/merge-map.ts"],"sourcesContent":["type SourceMap = any;\nimport remapping from \"@ampproject/remapping\";\n\nexport default function mergeSourceMap(\n inputMap: SourceMap,\n map: SourceMap,\n sourceFileName: string,\n): SourceMap {\n // On win32 machines, the sourceFileName uses backslash paths like\n // `C:\\foo\\bar.js`. But sourcemaps are always posix paths, so we need to\n // normalize to regular slashes before we can merge (else we won't find the\n // source associated with our input map).\n // This mirrors code done while generating the output map at\n // https://github.com/babel/babel/blob/5c2fcadc9ae34fd20dd72b1111d5cf50476d700d/packages/babel-generator/src/source-map.ts#L102\n const source = sourceFileName.replace(/\\\\/g, \"/\");\n\n // Prevent an infinite recursion if one of the input map's sources has the\n // same resolved path as the input map. In the case, it would keep find the\n // input map, then get it's sources which will include a path like the input\n // map, on and on.\n let found = false;\n const result = remapping(rootless(map), (s, ctx) => {\n if (s === source && !found) {\n found = true;\n // We empty the source location, which will prevent the sourcemap from\n // becoming relative to the input's location. Eg, if we're transforming a\n // file 'foo/bar.js', and it is a transformation of a `baz.js` file in the\n // same directory, the expected output is just `baz.js`. Without this step,\n // it would become `foo/baz.js`.\n ctx.source = \"\";\n\n return rootless(inputMap);\n }\n\n return null;\n });\n\n if (typeof inputMap.sourceRoot === \"string\") {\n result.sourceRoot = inputMap.sourceRoot;\n }\n\n // remapping returns a SourceMap class type, but this breaks code downstream in\n // @babel/traverse and @babel/types that relies on data being plain objects.\n // When it encounters the sourcemap type it outputs a \"don't know how to turn\n // this value into a node\" error. As a result, we are converting the merged\n // sourcemap to a plain js object.\n return { ...result };\n}\n\nfunction rootless(map: SourceMap): SourceMap {\n return {\n ...map,\n\n // This is a bit hack. Remapping will create absolute sources in our\n // sourcemap, but we want to maintain sources relative to the sourceRoot.\n // We'll re-add the sourceRoot after remapping.\n sourceRoot: null,\n };\n}\n"],"mappings":";;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEe,SAASA,cAAc,CACpCC,QAAmB,EACnBC,GAAc,EACdC,cAAsB,EACX;EAOX,MAAMC,MAAM,GAAGD,cAAc,CAACE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;;EAMjD,IAAIC,KAAK,GAAG,KAAK;EACjB,MAAMC,MAAM,GAAGC,YAAS,CAACC,QAAQ,CAACP,GAAG,CAAC,EAAE,CAACQ,CAAC,EAAEC,GAAG,KAAK;IAClD,IAAID,CAAC,KAAKN,MAAM,IAAI,CAACE,KAAK,EAAE;MAC1BA,KAAK,GAAG,IAAI;MAMZK,GAAG,CAACP,MAAM,GAAG,EAAE;MAEf,OAAOK,QAAQ,CAACR,QAAQ,CAAC;IAC3B;IAEA,OAAO,IAAI;EACb,CAAC,CAAC;EAEF,IAAI,OAAOA,QAAQ,CAACW,UAAU,KAAK,QAAQ,EAAE;IAC3CL,MAAM,CAACK,UAAU,GAAGX,QAAQ,CAACW,UAAU;EACzC;;EAOA,yBAAYL,MAAM;AACpB;AAEA,SAASE,QAAQ,CAACP,GAAc,EAAa;EAC3C,yBACKA,GAAG;IAKNU,UAAU,EAAE;EAAI;AAEpB;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/index.js b/node_modules/@babel/core/lib/transformation/index.js new file mode 100755 index 0000000..8eaf3b3 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/index.js @@ -0,0 +1,102 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.run = run; +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +var _pluginPass = require("./plugin-pass"); +var _blockHoistPlugin = require("./block-hoist-plugin"); +var _normalizeOpts = require("./normalize-opts"); +var _normalizeFile = require("./normalize-file"); +var _generate = require("./file/generate"); +var _deepArray = require("../config/helpers/deep-array"); +function* run(config, code, ast) { + const file = yield* (0, _normalizeFile.default)(config.passes, (0, _normalizeOpts.default)(config), code, ast); + const opts = file.opts; + try { + yield* transformFile(file, config.passes); + } catch (e) { + var _opts$filename; + e.message = `${(_opts$filename = opts.filename) != null ? _opts$filename : "unknown file"}: ${e.message}`; + if (!e.code) { + e.code = "BABEL_TRANSFORM_ERROR"; + } + throw e; + } + let outputCode, outputMap; + try { + if (opts.code !== false) { + ({ + outputCode, + outputMap + } = (0, _generate.default)(config.passes, file)); + } + } catch (e) { + var _opts$filename2; + e.message = `${(_opts$filename2 = opts.filename) != null ? _opts$filename2 : "unknown file"}: ${e.message}`; + if (!e.code) { + e.code = "BABEL_GENERATE_ERROR"; + } + throw e; + } + return { + metadata: file.metadata, + options: opts, + ast: opts.ast === true ? file.ast : null, + code: outputCode === undefined ? null : outputCode, + map: outputMap === undefined ? null : outputMap, + sourceType: file.ast.program.sourceType, + externalDependencies: (0, _deepArray.flattenToSet)(config.externalDependencies) + }; +} +function* transformFile(file, pluginPasses) { + for (const pluginPairs of pluginPasses) { + const passPairs = []; + const passes = []; + const visitors = []; + for (const plugin of pluginPairs.concat([(0, _blockHoistPlugin.default)()])) { + const pass = new _pluginPass.default(file, plugin.key, plugin.options); + passPairs.push([plugin, pass]); + passes.push(pass); + visitors.push(plugin.visitor); + } + for (const [plugin, pass] of passPairs) { + const fn = plugin.pre; + if (fn) { + const result = fn.call(pass, file); + + yield* []; + if (isThenable(result)) { + throw new Error(`You appear to be using an plugin with an async .pre, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); + } + } + } + + const visitor = _traverse().default.visitors.merge(visitors, passes, file.opts.wrapPluginVisitorMethod); + (0, _traverse().default)(file.ast, visitor, file.scope); + for (const [plugin, pass] of passPairs) { + const fn = plugin.post; + if (fn) { + const result = fn.call(pass, file); + + yield* []; + if (isThenable(result)) { + throw new Error(`You appear to be using an plugin with an async .post, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); + } + } + } + } +} +function isThenable(val) { + return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function"; +} +0 && 0; + +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/core/lib/transformation/index.js.map b/node_modules/@babel/core/lib/transformation/index.js.map new file mode 100755 index 0000000..289f93b --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["run","config","code","ast","file","normalizeFile","passes","normalizeOptions","opts","transformFile","e","message","filename","outputCode","outputMap","generateCode","metadata","options","undefined","map","sourceType","program","externalDependencies","flattenToSet","pluginPasses","pluginPairs","passPairs","visitors","plugin","concat","loadBlockHoistPlugin","pass","PluginPass","key","push","visitor","fn","pre","result","call","isThenable","Error","traverse","merge","wrapPluginVisitorMethod","scope","post","val","then"],"sources":["../../src/transformation/index.ts"],"sourcesContent":["import traverse from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\ntype SourceMap = any;\nimport type { Handler } from \"gensync\";\n\nimport type { ResolvedConfig, Plugin, PluginPasses } from \"../config\";\n\nimport PluginPass from \"./plugin-pass\";\nimport loadBlockHoistPlugin from \"./block-hoist-plugin\";\nimport normalizeOptions from \"./normalize-opts\";\nimport normalizeFile from \"./normalize-file\";\n\nimport generateCode from \"./file/generate\";\nimport type File from \"./file/file\";\n\nimport { flattenToSet } from \"../config/helpers/deep-array\";\n\nexport type FileResultCallback = {\n (err: Error, file: null): void;\n (err: null, file: FileResult | null): void;\n};\n\nexport type FileResult = {\n metadata: { [key: string]: any };\n options: { [key: string]: any };\n ast: t.File | null;\n code: string | null;\n map: SourceMap | null;\n sourceType: \"script\" | \"module\";\n externalDependencies: Set;\n};\n\nexport function* run(\n config: ResolvedConfig,\n code: string,\n ast?: t.File | t.Program | null,\n): Handler {\n const file = yield* normalizeFile(\n config.passes,\n normalizeOptions(config),\n code,\n ast,\n );\n\n const opts = file.opts;\n try {\n yield* transformFile(file, config.passes);\n } catch (e) {\n e.message = `${opts.filename ?? \"unknown file\"}: ${e.message}`;\n if (!e.code) {\n e.code = \"BABEL_TRANSFORM_ERROR\";\n }\n throw e;\n }\n\n let outputCode, outputMap;\n try {\n if (opts.code !== false) {\n ({ outputCode, outputMap } = generateCode(config.passes, file));\n }\n } catch (e) {\n e.message = `${opts.filename ?? \"unknown file\"}: ${e.message}`;\n if (!e.code) {\n e.code = \"BABEL_GENERATE_ERROR\";\n }\n throw e;\n }\n\n return {\n metadata: file.metadata,\n options: opts,\n ast: opts.ast === true ? file.ast : null,\n code: outputCode === undefined ? null : outputCode,\n map: outputMap === undefined ? null : outputMap,\n sourceType: file.ast.program.sourceType,\n externalDependencies: flattenToSet(config.externalDependencies),\n };\n}\n\nfunction* transformFile(file: File, pluginPasses: PluginPasses): Handler {\n for (const pluginPairs of pluginPasses) {\n const passPairs: [Plugin, PluginPass][] = [];\n const passes = [];\n const visitors = [];\n\n for (const plugin of pluginPairs.concat([loadBlockHoistPlugin()])) {\n const pass = new PluginPass(file, plugin.key, plugin.options);\n\n passPairs.push([plugin, pass]);\n passes.push(pass);\n visitors.push(plugin.visitor);\n }\n\n for (const [plugin, pass] of passPairs) {\n const fn = plugin.pre;\n if (fn) {\n const result = fn.call(pass, file);\n\n // @ts-expect-error - If we want to support async .pre\n yield* [];\n\n if (isThenable(result)) {\n throw new Error(\n `You appear to be using an plugin with an async .pre, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, you may need to upgrade ` +\n `your @babel/core version.`,\n );\n }\n }\n }\n\n // merge all plugin visitors into a single visitor\n const visitor = traverse.visitors.merge(\n visitors,\n passes,\n file.opts.wrapPluginVisitorMethod,\n );\n traverse(file.ast, visitor, file.scope);\n\n for (const [plugin, pass] of passPairs) {\n const fn = plugin.post;\n if (fn) {\n const result = fn.call(pass, file);\n\n // @ts-expect-error - If we want to support async .post\n yield* [];\n\n if (isThenable(result)) {\n throw new Error(\n `You appear to be using an plugin with an async .post, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, you may need to upgrade ` +\n `your @babel/core version.`,\n );\n }\n }\n }\n }\n}\n\nfunction isThenable>(val: any): val is T {\n return (\n !!val &&\n (typeof val === \"object\" || typeof val === \"function\") &&\n !!val.then &&\n typeof val.then === \"function\"\n );\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/normalize-file.js b/node_modules/@babel/core/lib/transformation/normalize-file.js new file mode 100755 index 0000000..dd3cc8d --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/normalize-file.js @@ -0,0 +1,134 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = normalizeFile; +function _fs() { + const data = require("fs"); + _fs = function () { + return data; + }; + return data; +} +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +function _t() { + const data = require("@babel/types"); + _t = function () { + return data; + }; + return data; +} +function _convertSourceMap() { + const data = require("convert-source-map"); + _convertSourceMap = function () { + return data; + }; + return data; +} +var _file = require("./file/file"); +var _parser = require("../parser"); +var _cloneDeep = require("./util/clone-deep"); +const { + file, + traverseFast +} = _t(); +const debug = _debug()("babel:transform:file"); +const LARGE_INPUT_SOURCEMAP_THRESHOLD = 3000000; + +const INLINE_SOURCEMAP_REGEX = /^[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/; +const EXTERNAL_SOURCEMAP_REGEX = /^[@#][ \t]+sourceMappingURL=([^\s'"`]+)[ \t]*$/; +function* normalizeFile(pluginPasses, options, code, ast) { + code = `${code || ""}`; + if (ast) { + if (ast.type === "Program") { + ast = file(ast, [], []); + } else if (ast.type !== "File") { + throw new Error("AST root must be a Program or File node"); + } + if (options.cloneInputAst) { + ast = (0, _cloneDeep.default)(ast); + } + } else { + ast = yield* (0, _parser.default)(pluginPasses, options, code); + } + let inputMap = null; + if (options.inputSourceMap !== false) { + if (typeof options.inputSourceMap === "object") { + inputMap = _convertSourceMap().fromObject(options.inputSourceMap); + } + if (!inputMap) { + const lastComment = extractComments(INLINE_SOURCEMAP_REGEX, ast); + if (lastComment) { + try { + inputMap = _convertSourceMap().fromComment(lastComment); + } catch (err) { + debug("discarding unknown inline input sourcemap", err); + } + } + } + if (!inputMap) { + const lastComment = extractComments(EXTERNAL_SOURCEMAP_REGEX, ast); + if (typeof options.filename === "string" && lastComment) { + try { + const match = EXTERNAL_SOURCEMAP_REGEX.exec(lastComment); + const inputMapContent = _fs().readFileSync(_path().resolve(_path().dirname(options.filename), match[1])); + if (inputMapContent.length > LARGE_INPUT_SOURCEMAP_THRESHOLD) { + debug("skip merging input map > 1 MB"); + } else { + inputMap = _convertSourceMap().fromJSON( + inputMapContent); + } + } catch (err) { + debug("discarding unknown file input sourcemap", err); + } + } else if (lastComment) { + debug("discarding un-loadable file input sourcemap"); + } + } + } + return new _file.default(options, { + code, + ast: ast, + inputMap + }); +} +function extractCommentsFromList(regex, comments, lastComment) { + if (comments) { + comments = comments.filter(({ + value + }) => { + if (regex.test(value)) { + lastComment = value; + return false; + } + return true; + }); + } + return [comments, lastComment]; +} +function extractComments(regex, ast) { + let lastComment = null; + traverseFast(ast, node => { + [node.leadingComments, lastComment] = extractCommentsFromList(regex, node.leadingComments, lastComment); + [node.innerComments, lastComment] = extractCommentsFromList(regex, node.innerComments, lastComment); + [node.trailingComments, lastComment] = extractCommentsFromList(regex, node.trailingComments, lastComment); + }); + return lastComment; +} +0 && 0; + +//# sourceMappingURL=normalize-file.js.map diff --git a/node_modules/@babel/core/lib/transformation/normalize-file.js.map b/node_modules/@babel/core/lib/transformation/normalize-file.js.map new file mode 100755 index 0000000..605e0ff --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/normalize-file.js.map @@ -0,0 +1 @@ +{"version":3,"names":["file","traverseFast","debug","buildDebug","LARGE_INPUT_SOURCEMAP_THRESHOLD","INLINE_SOURCEMAP_REGEX","EXTERNAL_SOURCEMAP_REGEX","normalizeFile","pluginPasses","options","code","ast","type","Error","cloneInputAst","cloneDeep","parser","inputMap","inputSourceMap","convertSourceMap","fromObject","lastComment","extractComments","fromComment","err","filename","match","exec","inputMapContent","fs","readFileSync","path","resolve","dirname","length","fromJSON","File","extractCommentsFromList","regex","comments","filter","value","test","node","leadingComments","innerComments","trailingComments"],"sources":["../../src/transformation/normalize-file.ts"],"sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport buildDebug from \"debug\";\nimport type { Handler } from \"gensync\";\nimport { file, traverseFast } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport type { PluginPasses } from \"../config\";\nimport convertSourceMap from \"convert-source-map\";\nimport type { SourceMapConverter as Converter } from \"convert-source-map\";\nimport File from \"./file/file\";\nimport parser from \"../parser\";\nimport cloneDeep from \"./util/clone-deep\";\n\nconst debug = buildDebug(\"babel:transform:file\");\nconst LARGE_INPUT_SOURCEMAP_THRESHOLD = 3_000_000;\n\n// These regexps are copied from the convert-source-map package,\n// but without // or /* at the beginning of the comment.\n\n// eslint-disable-next-line max-len\nconst INLINE_SOURCEMAP_REGEX =\n /^[@#]\\s+sourceMappingURL=data:(?:application|text)\\/json;(?:charset[:=]\\S+?;)?base64,(?:.*)$/;\nconst EXTERNAL_SOURCEMAP_REGEX =\n /^[@#][ \\t]+sourceMappingURL=([^\\s'\"`]+)[ \\t]*$/;\n\nexport type NormalizedFile = {\n code: string;\n ast: t.File;\n inputMap: Converter | null;\n};\n\nexport default function* normalizeFile(\n pluginPasses: PluginPasses,\n options: { [key: string]: any },\n code: string,\n ast?: t.File | t.Program | null,\n): Handler {\n code = `${code || \"\"}`;\n\n if (ast) {\n if (ast.type === \"Program\") {\n ast = file(ast, [], []);\n } else if (ast.type !== \"File\") {\n throw new Error(\"AST root must be a Program or File node\");\n }\n\n if (options.cloneInputAst) {\n ast = cloneDeep(ast);\n }\n } else {\n // @ts-expect-error todo: use babel-types ast typings in Babel parser\n ast = yield* parser(pluginPasses, options, code);\n }\n\n let inputMap = null;\n if (options.inputSourceMap !== false) {\n // If an explicit object is passed in, it overrides the processing of\n // source maps that may be in the file itself.\n if (typeof options.inputSourceMap === \"object\") {\n inputMap = convertSourceMap.fromObject(options.inputSourceMap);\n }\n\n if (!inputMap) {\n const lastComment = extractComments(INLINE_SOURCEMAP_REGEX, ast);\n if (lastComment) {\n try {\n inputMap = convertSourceMap.fromComment(lastComment);\n } catch (err) {\n debug(\"discarding unknown inline input sourcemap\", err);\n }\n }\n }\n\n if (!inputMap) {\n const lastComment = extractComments(EXTERNAL_SOURCEMAP_REGEX, ast);\n if (typeof options.filename === \"string\" && lastComment) {\n try {\n // when `lastComment` is non-null, EXTERNAL_SOURCEMAP_REGEX must have matches\n const match: [string, string] = EXTERNAL_SOURCEMAP_REGEX.exec(\n lastComment,\n ) as any;\n const inputMapContent = fs.readFileSync(\n path.resolve(path.dirname(options.filename), match[1]),\n );\n if (inputMapContent.length > LARGE_INPUT_SOURCEMAP_THRESHOLD) {\n debug(\"skip merging input map > 1 MB\");\n } else {\n inputMap = convertSourceMap.fromJSON(\n // todo:\n inputMapContent as unknown as string,\n );\n }\n } catch (err) {\n debug(\"discarding unknown file input sourcemap\", err);\n }\n } else if (lastComment) {\n debug(\"discarding un-loadable file input sourcemap\");\n }\n }\n }\n\n return new File(options, {\n code,\n ast: ast as t.File,\n inputMap,\n });\n}\n\nfunction extractCommentsFromList(\n regex: RegExp,\n comments: t.Comment[],\n lastComment: string | null,\n): [t.Comment[], string | null] {\n if (comments) {\n comments = comments.filter(({ value }) => {\n if (regex.test(value)) {\n lastComment = value;\n return false;\n }\n return true;\n });\n }\n return [comments, lastComment];\n}\n\nfunction extractComments(regex: RegExp, ast: t.Node) {\n let lastComment: string = null;\n traverseFast(ast, node => {\n [node.leadingComments, lastComment] = extractCommentsFromList(\n regex,\n node.leadingComments,\n lastComment,\n );\n [node.innerComments, lastComment] = extractCommentsFromList(\n regex,\n node.innerComments,\n lastComment,\n );\n [node.trailingComments, lastComment] = extractCommentsFromList(\n regex,\n node.trailingComments,\n lastComment,\n );\n });\n return lastComment;\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/normalize-opts.js b/node_modules/@babel/core/lib/transformation/normalize-opts.js new file mode 100755 index 0000000..20826fc --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/normalize-opts.js @@ -0,0 +1,59 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = normalizeOptions; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function normalizeOptions(config) { + const { + filename, + cwd, + filenameRelative = typeof filename === "string" ? _path().relative(cwd, filename) : "unknown", + sourceType = "module", + inputSourceMap, + sourceMaps = !!inputSourceMap, + sourceRoot = config.options.moduleRoot, + sourceFileName = _path().basename(filenameRelative), + comments = true, + compact = "auto" + } = config.options; + const opts = config.options; + const options = Object.assign({}, opts, { + parserOpts: Object.assign({ + sourceType: _path().extname(filenameRelative) === ".mjs" ? "module" : sourceType, + sourceFileName: filename, + plugins: [] + }, opts.parserOpts), + generatorOpts: Object.assign({ + filename, + auxiliaryCommentBefore: opts.auxiliaryCommentBefore, + auxiliaryCommentAfter: opts.auxiliaryCommentAfter, + retainLines: opts.retainLines, + comments, + shouldPrintComment: opts.shouldPrintComment, + compact, + minified: opts.minified, + sourceMaps, + sourceRoot, + sourceFileName + }, opts.generatorOpts) + }); + for (const plugins of config.passes) { + for (const plugin of plugins) { + if (plugin.manipulateOptions) { + plugin.manipulateOptions(options, options.parserOpts); + } + } + } + return options; +} +0 && 0; + +//# sourceMappingURL=normalize-opts.js.map diff --git a/node_modules/@babel/core/lib/transformation/normalize-opts.js.map b/node_modules/@babel/core/lib/transformation/normalize-opts.js.map new file mode 100755 index 0000000..7ff0d99 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/normalize-opts.js.map @@ -0,0 +1 @@ +{"version":3,"names":["normalizeOptions","config","filename","cwd","filenameRelative","path","relative","sourceType","inputSourceMap","sourceMaps","sourceRoot","options","moduleRoot","sourceFileName","basename","comments","compact","opts","parserOpts","extname","plugins","generatorOpts","auxiliaryCommentBefore","auxiliaryCommentAfter","retainLines","shouldPrintComment","minified","passes","plugin","manipulateOptions"],"sources":["../../src/transformation/normalize-opts.ts"],"sourcesContent":["import path from \"path\";\nimport type { ResolvedConfig } from \"../config\";\n\nexport default function normalizeOptions(config: ResolvedConfig): {} {\n const {\n filename,\n cwd,\n filenameRelative = typeof filename === \"string\"\n ? path.relative(cwd, filename)\n : \"unknown\",\n sourceType = \"module\",\n inputSourceMap,\n sourceMaps = !!inputSourceMap,\n sourceRoot = process.env.BABEL_8_BREAKING\n ? undefined\n : config.options.moduleRoot,\n\n sourceFileName = path.basename(filenameRelative),\n\n comments = true,\n compact = \"auto\",\n } = config.options;\n\n const opts = config.options;\n\n const options = {\n ...opts,\n\n parserOpts: {\n sourceType:\n path.extname(filenameRelative) === \".mjs\" ? \"module\" : sourceType,\n\n sourceFileName: filename,\n plugins: [],\n ...opts.parserOpts,\n },\n\n generatorOpts: {\n // General generator flags.\n filename,\n\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n retainLines: opts.retainLines,\n comments,\n shouldPrintComment: opts.shouldPrintComment,\n compact,\n minified: opts.minified,\n\n // Source-map generation flags.\n sourceMaps,\n\n sourceRoot,\n sourceFileName,\n ...opts.generatorOpts,\n },\n };\n\n for (const plugins of config.passes) {\n for (const plugin of plugins) {\n if (plugin.manipulateOptions) {\n plugin.manipulateOptions(options, options.parserOpts);\n }\n }\n }\n\n return options;\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGe,SAASA,gBAAgB,CAACC,MAAsB,EAAM;EACnE,MAAM;IACJC,QAAQ;IACRC,GAAG;IACHC,gBAAgB,GAAG,OAAOF,QAAQ,KAAK,QAAQ,GAC3CG,OAAI,CAACC,QAAQ,CAACH,GAAG,EAAED,QAAQ,CAAC,GAC5B,SAAS;IACbK,UAAU,GAAG,QAAQ;IACrBC,cAAc;IACdC,UAAU,GAAG,CAAC,CAACD,cAAc;IAC7BE,UAAU,GAENT,MAAM,CAACU,OAAO,CAACC,UAAU;IAE7BC,cAAc,GAAGR,OAAI,CAACS,QAAQ,CAACV,gBAAgB,CAAC;IAEhDW,QAAQ,GAAG,IAAI;IACfC,OAAO,GAAG;EACZ,CAAC,GAAGf,MAAM,CAACU,OAAO;EAElB,MAAMM,IAAI,GAAGhB,MAAM,CAACU,OAAO;EAE3B,MAAMA,OAAO,qBACRM,IAAI;IAEPC,UAAU;MACRX,UAAU,EACRF,OAAI,CAACc,OAAO,CAACf,gBAAgB,CAAC,KAAK,MAAM,GAAG,QAAQ,GAAGG,UAAU;MAEnEM,cAAc,EAAEX,QAAQ;MACxBkB,OAAO,EAAE;IAAE,GACRH,IAAI,CAACC,UAAU,CACnB;IAEDG,aAAa;MAEXnB,QAAQ;MAERoB,sBAAsB,EAAEL,IAAI,CAACK,sBAAsB;MACnDC,qBAAqB,EAAEN,IAAI,CAACM,qBAAqB;MACjDC,WAAW,EAAEP,IAAI,CAACO,WAAW;MAC7BT,QAAQ;MACRU,kBAAkB,EAAER,IAAI,CAACQ,kBAAkB;MAC3CT,OAAO;MACPU,QAAQ,EAAET,IAAI,CAACS,QAAQ;MAGvBjB,UAAU;MAEVC,UAAU;MACVG;IAAc,GACXI,IAAI,CAACI,aAAa;EACtB,EACF;EAED,KAAK,MAAMD,OAAO,IAAInB,MAAM,CAAC0B,MAAM,EAAE;IACnC,KAAK,MAAMC,MAAM,IAAIR,OAAO,EAAE;MAC5B,IAAIQ,MAAM,CAACC,iBAAiB,EAAE;QAC5BD,MAAM,CAACC,iBAAiB,CAAClB,OAAO,EAAEA,OAAO,CAACO,UAAU,CAAC;MACvD;IACF;EACF;EAEA,OAAOP,OAAO;AAChB;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/plugin-pass.js b/node_modules/@babel/core/lib/transformation/plugin-pass.js new file mode 100755 index 0000000..90b3e84 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/plugin-pass.js @@ -0,0 +1,49 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +class PluginPass { + + constructor(file, key, options) { + this._map = new Map(); + this.key = void 0; + this.file = void 0; + this.opts = void 0; + this.cwd = void 0; + this.filename = void 0; + this.key = key; + this.file = file; + this.opts = options || {}; + this.cwd = file.opts.cwd; + this.filename = file.opts.filename; + } + set(key, val) { + this._map.set(key, val); + } + get(key) { + return this._map.get(key); + } + availableHelper(name, versionRange) { + return this.file.availableHelper(name, versionRange); + } + addHelper(name) { + return this.file.addHelper(name); + } + addImport() { + return this.file.addImport(); + } + buildCodeFrameError(node, msg, _Error) { + return this.file.buildCodeFrameError(node, msg, _Error); + } +} +exports.default = PluginPass; +{ + PluginPass.prototype.getModuleName = function getModuleName() { + return this.file.getModuleName(); + }; +} +0 && 0; + +//# sourceMappingURL=plugin-pass.js.map diff --git a/node_modules/@babel/core/lib/transformation/plugin-pass.js.map b/node_modules/@babel/core/lib/transformation/plugin-pass.js.map new file mode 100755 index 0000000..b31b8c7 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/plugin-pass.js.map @@ -0,0 +1 @@ +{"version":3,"names":["PluginPass","constructor","file","key","options","_map","Map","opts","cwd","filename","set","val","get","availableHelper","name","versionRange","addHelper","addImport","buildCodeFrameError","node","msg","_Error","prototype","getModuleName"],"sources":["../../src/transformation/plugin-pass.ts"],"sourcesContent":["import type File from \"./file/file\";\nimport type { NodeLocation } from \"./file/file\";\n\nexport default class PluginPass {\n _map: Map = new Map();\n key: string | undefined | null;\n file: File;\n opts: any;\n\n // The working directory that Babel's programmatic options are loaded\n // relative to.\n cwd: string;\n\n // The absolute path of the file being compiled.\n filename: string | void;\n\n constructor(file: File, key?: string | null, options?: any | null) {\n this.key = key;\n this.file = file;\n this.opts = options || {};\n this.cwd = file.opts.cwd;\n this.filename = file.opts.filename;\n }\n\n set(key: unknown, val: unknown) {\n this._map.set(key, val);\n }\n\n get(key: unknown): any {\n return this._map.get(key);\n }\n\n availableHelper(name: string, versionRange?: string | null) {\n return this.file.availableHelper(name, versionRange);\n }\n\n addHelper(name: string) {\n return this.file.addHelper(name);\n }\n\n addImport() {\n return this.file.addImport();\n }\n\n buildCodeFrameError(\n node: NodeLocation | undefined | null,\n msg: string,\n _Error?: typeof Error,\n ) {\n return this.file.buildCodeFrameError(node, msg, _Error);\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n (PluginPass as any).prototype.getModuleName = function getModuleName():\n | string\n | undefined {\n return this.file.getModuleName();\n };\n}\n"],"mappings":";;;;;;AAGe,MAAMA,UAAU,CAAC;;EAa9BC,WAAW,CAACC,IAAU,EAAEC,GAAmB,EAAEC,OAAoB,EAAE;IAAA,KAZnEC,IAAI,GAA0B,IAAIC,GAAG,EAAE;IAAA,KACvCH,GAAG;IAAA,KACHD,IAAI;IAAA,KACJK,IAAI;IAAA,KAIJC,GAAG;IAAA,KAGHC,QAAQ;IAGN,IAAI,CAACN,GAAG,GAAGA,GAAG;IACd,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACK,IAAI,GAAGH,OAAO,IAAI,CAAC,CAAC;IACzB,IAAI,CAACI,GAAG,GAAGN,IAAI,CAACK,IAAI,CAACC,GAAG;IACxB,IAAI,CAACC,QAAQ,GAAGP,IAAI,CAACK,IAAI,CAACE,QAAQ;EACpC;EAEAC,GAAG,CAACP,GAAY,EAAEQ,GAAY,EAAE;IAC9B,IAAI,CAACN,IAAI,CAACK,GAAG,CAACP,GAAG,EAAEQ,GAAG,CAAC;EACzB;EAEAC,GAAG,CAACT,GAAY,EAAO;IACrB,OAAO,IAAI,CAACE,IAAI,CAACO,GAAG,CAACT,GAAG,CAAC;EAC3B;EAEAU,eAAe,CAACC,IAAY,EAAEC,YAA4B,EAAE;IAC1D,OAAO,IAAI,CAACb,IAAI,CAACW,eAAe,CAACC,IAAI,EAAEC,YAAY,CAAC;EACtD;EAEAC,SAAS,CAACF,IAAY,EAAE;IACtB,OAAO,IAAI,CAACZ,IAAI,CAACc,SAAS,CAACF,IAAI,CAAC;EAClC;EAEAG,SAAS,GAAG;IACV,OAAO,IAAI,CAACf,IAAI,CAACe,SAAS,EAAE;EAC9B;EAEAC,mBAAmB,CACjBC,IAAqC,EACrCC,GAAW,EACXC,MAAqB,EACrB;IACA,OAAO,IAAI,CAACnB,IAAI,CAACgB,mBAAmB,CAACC,IAAI,EAAEC,GAAG,EAAEC,MAAM,CAAC;EACzD;AACF;AAAC;AAEkC;EAChCrB,UAAU,CAASsB,SAAS,CAACC,aAAa,GAAG,SAASA,aAAa,GAEtD;IACZ,OAAO,IAAI,CAACrB,IAAI,CAACqB,aAAa,EAAE;EAClC,CAAC;AACH;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/util/clone-deep.js b/node_modules/@babel/core/lib/transformation/util/clone-deep.js new file mode 100755 index 0000000..94d0101 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/util/clone-deep.js @@ -0,0 +1,35 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +function deepClone(value, cache) { + if (value !== null) { + if (cache.has(value)) return cache.get(value); + let cloned; + if (Array.isArray(value)) { + cloned = new Array(value.length); + for (let i = 0; i < value.length; i++) { + cloned[i] = typeof value[i] !== "object" ? value[i] : deepClone(value[i], cache); + } + } else { + cloned = {}; + const keys = Object.keys(value); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + cloned[key] = typeof value[key] !== "object" ? value[key] : deepClone(value[key], cache); + } + } + cache.set(value, cloned); + return cloned; + } + return value; +} +function _default(value) { + if (typeof value !== "object") return value; + return deepClone(value, new Map()); +} +0 && 0; + +//# sourceMappingURL=clone-deep.js.map diff --git a/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map b/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map new file mode 100755 index 0000000..8eda508 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map @@ -0,0 +1 @@ +{"version":3,"names":["deepClone","value","cache","has","get","cloned","Array","isArray","length","i","keys","Object","key","set","Map"],"sources":["../../../src/transformation/util/clone-deep.ts"],"sourcesContent":["//https://github.com/babel/babel/pull/14583#discussion_r882828856\nfunction deepClone(value: any, cache: Map): any {\n if (value !== null) {\n if (cache.has(value)) return cache.get(value);\n let cloned: any;\n if (Array.isArray(value)) {\n cloned = new Array(value.length);\n for (let i = 0; i < value.length; i++) {\n cloned[i] =\n typeof value[i] !== \"object\" ? value[i] : deepClone(value[i], cache);\n }\n } else {\n cloned = {};\n const keys = Object.keys(value);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n cloned[key] =\n typeof value[key] !== \"object\"\n ? value[key]\n : deepClone(value[key], cache);\n }\n }\n cache.set(value, cloned);\n return cloned;\n }\n return value;\n}\n\nexport default function (value: T): T {\n if (typeof value !== \"object\") return value;\n return deepClone(value, new Map());\n}\n"],"mappings":";;;;;;AACA,SAASA,SAAS,CAACC,KAAU,EAAEC,KAAoB,EAAO;EACxD,IAAID,KAAK,KAAK,IAAI,EAAE;IAClB,IAAIC,KAAK,CAACC,GAAG,CAACF,KAAK,CAAC,EAAE,OAAOC,KAAK,CAACE,GAAG,CAACH,KAAK,CAAC;IAC7C,IAAII,MAAW;IACf,IAAIC,KAAK,CAACC,OAAO,CAACN,KAAK,CAAC,EAAE;MACxBI,MAAM,GAAG,IAAIC,KAAK,CAACL,KAAK,CAACO,MAAM,CAAC;MAChC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,KAAK,CAACO,MAAM,EAAEC,CAAC,EAAE,EAAE;QACrCJ,MAAM,CAACI,CAAC,CAAC,GACP,OAAOR,KAAK,CAACQ,CAAC,CAAC,KAAK,QAAQ,GAAGR,KAAK,CAACQ,CAAC,CAAC,GAAGT,SAAS,CAACC,KAAK,CAACQ,CAAC,CAAC,EAAEP,KAAK,CAAC;MACxE;IACF,CAAC,MAAM;MACLG,MAAM,GAAG,CAAC,CAAC;MACX,MAAMK,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACT,KAAK,CAAC;MAC/B,KAAK,IAAIQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,IAAI,CAACF,MAAM,EAAEC,CAAC,EAAE,EAAE;QACpC,MAAMG,GAAG,GAAGF,IAAI,CAACD,CAAC,CAAC;QACnBJ,MAAM,CAACO,GAAG,CAAC,GACT,OAAOX,KAAK,CAACW,GAAG,CAAC,KAAK,QAAQ,GAC1BX,KAAK,CAACW,GAAG,CAAC,GACVZ,SAAS,CAACC,KAAK,CAACW,GAAG,CAAC,EAAEV,KAAK,CAAC;MACpC;IACF;IACAA,KAAK,CAACW,GAAG,CAACZ,KAAK,EAAEI,MAAM,CAAC;IACxB,OAAOA,MAAM;EACf;EACA,OAAOJ,KAAK;AACd;AAEe,kBAAaA,KAAQ,EAAK;EACvC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAOA,KAAK;EAC3C,OAAOD,SAAS,CAACC,KAAK,EAAE,IAAIa,GAAG,EAAE,CAAC;AACpC;AAAC"} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/vendor/import-meta-resolve.js b/node_modules/@babel/core/lib/vendor/import-meta-resolve.js new file mode 100755 index 0000000..475bdcb --- /dev/null +++ b/node_modules/@babel/core/lib/vendor/import-meta-resolve.js @@ -0,0 +1,3001 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.moduleResolve = moduleResolve; +exports.resolve = resolve; +function _url() { + const data = require("url"); + _url = function () { + return data; + }; + return data; +} +function _fs() { + const data = _interopRequireWildcard(require("fs"), true); + _fs = function () { + return data; + }; + return data; +} +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _assert() { + const data = require("assert"); + _assert = function () { + return data; + }; + return data; +} +function _util() { + const data = require("util"); + _util = function () { + return data; + }; + return data; +} +function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } +function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +var re$3 = { + exports: {} +}; + +const SEMVER_SPEC_VERSION = '2.0.0'; +const MAX_LENGTH$2 = 256; +const MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER || 9007199254740991; + +const MAX_SAFE_COMPONENT_LENGTH = 16; +var constants = { + SEMVER_SPEC_VERSION, + MAX_LENGTH: MAX_LENGTH$2, + MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1, + MAX_SAFE_COMPONENT_LENGTH +}; +const debug$1 = typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error('SEMVER', ...args) : () => {}; +var debug_1 = debug$1; +(function (module, exports) { + const { + MAX_SAFE_COMPONENT_LENGTH + } = constants; + const debug = debug_1; + exports = module.exports = {}; + + const re = exports.re = []; + const src = exports.src = []; + const t = exports.t = {}; + let R = 0; + const createToken = (name, value, isGlobal) => { + const index = R++; + debug(name, index, value); + t[name] = index; + src[index] = value; + re[index] = new RegExp(value, isGlobal ? 'g' : undefined); + }; + + createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); + createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); + + createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); + + createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + `(${src[t.NUMERICIDENTIFIER]})\\.` + `(${src[t.NUMERICIDENTIFIER]})`); + createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})`); + + createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]}|${src[t.NONNUMERICIDENTIFIER]})`); + createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]}|${src[t.NONNUMERICIDENTIFIER]})`); + + createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); + createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); + + createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); + + createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); + + createToken('FULLPLAIN', `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`); + createToken('FULL', `^${src[t.FULLPLAIN]}$`); + + createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`); + createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); + createToken('GTLT', '((?:<|>)?=?)'); + + createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); + createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); + createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?` + `)?)?`); + createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?` + `)?)?`); + createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); + createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); + + createToken('COERCE', `${'(^|[^\\d])' + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:$|[^\\d])`); + createToken('COERCERTL', src[t.COERCE], true); + + createToken('LONETILDE', '(?:~>?)'); + createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true); + exports.tildeTrimReplace = '$1~'; + createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); + createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); + + createToken('LONECARET', '(?:\\^)'); + createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true); + exports.caretTrimReplace = '$1^'; + createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); + createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); + + createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); + createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); + + createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); + exports.comparatorTrimReplace = '$1$2$3'; + + createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + `\\s+-\\s+` + `(${src[t.XRANGEPLAIN]})` + `\\s*$`); + createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + `\\s+-\\s+` + `(${src[t.XRANGEPLAINLOOSE]})` + `\\s*$`); + + createToken('STAR', '(<|>)?=?\\s*\\*'); + createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$'); + createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$'); +})(re$3, re$3.exports); + +const opts = ['includePrerelease', 'loose', 'rtl']; +const parseOptions$2 = options => !options ? {} : typeof options !== 'object' ? { + loose: true +} : opts.filter(k => options[k]).reduce((o, k) => { + o[k] = true; + return o; +}, {}); +var parseOptions_1 = parseOptions$2; +const numeric = /^[0-9]+$/; +const compareIdentifiers$1 = (a, b) => { + const anum = numeric.test(a); + const bnum = numeric.test(b); + if (anum && bnum) { + a = +a; + b = +b; + } + return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; +}; +const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a); +var identifiers = { + compareIdentifiers: compareIdentifiers$1, + rcompareIdentifiers +}; +const debug = debug_1; +const { + MAX_LENGTH: MAX_LENGTH$1, + MAX_SAFE_INTEGER +} = constants; +const { + re: re$2, + t: t$2 +} = re$3.exports; +const parseOptions$1 = parseOptions_1; +const { + compareIdentifiers +} = identifiers; +class SemVer$c { + constructor(version, options) { + options = parseOptions$1(options); + if (version instanceof SemVer$c) { + if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) { + return version; + } else { + version = version.version; + } + } else if (typeof version !== 'string') { + throw new TypeError(`Invalid Version: ${version}`); + } + if (version.length > MAX_LENGTH$1) { + throw new TypeError(`version is longer than ${MAX_LENGTH$1} characters`); + } + debug('SemVer', version, options); + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + const m = version.trim().match(options.loose ? re$2[t$2.LOOSE] : re$2[t$2.FULL]); + if (!m) { + throw new TypeError(`Invalid Version: ${version}`); + } + this.raw = version; + + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version'); + } + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version'); + } + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version'); + } + + if (!m[4]) { + this.prerelease = []; + } else { + this.prerelease = m[4].split('.').map(id => { + if (/^[0-9]+$/.test(id)) { + const num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num; + } + } + return id; + }); + } + this.build = m[5] ? m[5].split('.') : []; + this.format(); + } + format() { + this.version = `${this.major}.${this.minor}.${this.patch}`; + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}`; + } + return this.version; + } + toString() { + return this.version; + } + compare(other) { + debug('SemVer.compare', this.version, this.options, other); + if (!(other instanceof SemVer$c)) { + if (typeof other === 'string' && other === this.version) { + return 0; + } + other = new SemVer$c(other, this.options); + } + if (other.version === this.version) { + return 0; + } + return this.compareMain(other) || this.comparePre(other); + } + compareMain(other) { + if (!(other instanceof SemVer$c)) { + other = new SemVer$c(other, this.options); + } + return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); + } + comparePre(other) { + if (!(other instanceof SemVer$c)) { + other = new SemVer$c(other, this.options); + } + + if (this.prerelease.length && !other.prerelease.length) { + return -1; + } else if (!this.prerelease.length && other.prerelease.length) { + return 1; + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0; + } + let i = 0; + do { + const a = this.prerelease[i]; + const b = other.prerelease[i]; + debug('prerelease compare', i, a, b); + if (a === undefined && b === undefined) { + return 0; + } else if (b === undefined) { + return 1; + } else if (a === undefined) { + return -1; + } else if (a === b) { + continue; + } else { + return compareIdentifiers(a, b); + } + } while (++i); + } + compareBuild(other) { + if (!(other instanceof SemVer$c)) { + other = new SemVer$c(other, this.options); + } + let i = 0; + do { + const a = this.build[i]; + const b = other.build[i]; + debug('prerelease compare', i, a, b); + if (a === undefined && b === undefined) { + return 0; + } else if (b === undefined) { + return 1; + } else if (a === undefined) { + return -1; + } else if (a === b) { + continue; + } else { + return compareIdentifiers(a, b); + } + } while (++i); + } + + inc(release, identifier) { + switch (release) { + case 'premajor': + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc('pre', identifier); + break; + case 'preminor': + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc('pre', identifier); + break; + case 'prepatch': + this.prerelease.length = 0; + this.inc('patch', identifier); + this.inc('pre', identifier); + break; + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier); + } + this.inc('pre', identifier); + break; + case 'major': + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { + this.major++; + } + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + case 'minor': + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + this.patch = 0; + this.prerelease = []; + break; + case 'patch': + if (this.prerelease.length === 0) { + this.patch++; + } + this.prerelease = []; + break; + case 'pre': + if (this.prerelease.length === 0) { + this.prerelease = [0]; + } else { + let i = this.prerelease.length; + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++; + i = -2; + } + } + if (i === -1) { + this.prerelease.push(0); + } + } + if (identifier) { + if (compareIdentifiers(this.prerelease[0], identifier) === 0) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0]; + } + } else { + this.prerelease = [identifier, 0]; + } + } + break; + default: + throw new Error(`invalid increment argument: ${release}`); + } + this.format(); + this.raw = this.version; + return this; + } +} +var semver$2 = SemVer$c; +const { + MAX_LENGTH +} = constants; +const { + re: re$1, + t: t$1 +} = re$3.exports; +const SemVer$b = semver$2; +const parseOptions = parseOptions_1; +const parse$5 = (version, options) => { + options = parseOptions(options); + if (version instanceof SemVer$b) { + return version; + } + if (typeof version !== 'string') { + return null; + } + if (version.length > MAX_LENGTH) { + return null; + } + const r = options.loose ? re$1[t$1.LOOSE] : re$1[t$1.FULL]; + if (!r.test(version)) { + return null; + } + try { + return new SemVer$b(version, options); + } catch (er) { + return null; + } +}; +var parse_1 = parse$5; +const parse$4 = parse_1; +const valid$1 = (version, options) => { + const v = parse$4(version, options); + return v ? v.version : null; +}; +var valid_1 = valid$1; +const parse$3 = parse_1; +const clean = (version, options) => { + const s = parse$3(version.trim().replace(/^[=v]+/, ''), options); + return s ? s.version : null; +}; +var clean_1 = clean; +const SemVer$a = semver$2; +const inc = (version, release, options, identifier) => { + if (typeof options === 'string') { + identifier = options; + options = undefined; + } + try { + return new SemVer$a(version instanceof SemVer$a ? version.version : version, options).inc(release, identifier).version; + } catch (er) { + return null; + } +}; +var inc_1 = inc; +const SemVer$9 = semver$2; +const compare$a = (a, b, loose) => new SemVer$9(a, loose).compare(new SemVer$9(b, loose)); +var compare_1 = compare$a; +const compare$9 = compare_1; +const eq$2 = (a, b, loose) => compare$9(a, b, loose) === 0; +var eq_1 = eq$2; +const parse$2 = parse_1; +const eq$1 = eq_1; +const diff = (version1, version2) => { + if (eq$1(version1, version2)) { + return null; + } else { + const v1 = parse$2(version1); + const v2 = parse$2(version2); + const hasPre = v1.prerelease.length || v2.prerelease.length; + const prefix = hasPre ? 'pre' : ''; + const defaultResult = hasPre ? 'prerelease' : ''; + for (const key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key] !== v2[key]) { + return prefix + key; + } + } + } + return defaultResult; + } +}; + +var diff_1 = diff; +const SemVer$8 = semver$2; +const major = (a, loose) => new SemVer$8(a, loose).major; +var major_1 = major; +const SemVer$7 = semver$2; +const minor = (a, loose) => new SemVer$7(a, loose).minor; +var minor_1 = minor; +const SemVer$6 = semver$2; +const patch = (a, loose) => new SemVer$6(a, loose).patch; +var patch_1 = patch; +const parse$1 = parse_1; +const prerelease = (version, options) => { + const parsed = parse$1(version, options); + return parsed && parsed.prerelease.length ? parsed.prerelease : null; +}; +var prerelease_1 = prerelease; +const compare$8 = compare_1; +const rcompare = (a, b, loose) => compare$8(b, a, loose); +var rcompare_1 = rcompare; +const compare$7 = compare_1; +const compareLoose = (a, b) => compare$7(a, b, true); +var compareLoose_1 = compareLoose; +const SemVer$5 = semver$2; +const compareBuild$2 = (a, b, loose) => { + const versionA = new SemVer$5(a, loose); + const versionB = new SemVer$5(b, loose); + return versionA.compare(versionB) || versionA.compareBuild(versionB); +}; +var compareBuild_1 = compareBuild$2; +const compareBuild$1 = compareBuild_1; +const sort = (list, loose) => list.sort((a, b) => compareBuild$1(a, b, loose)); +var sort_1 = sort; +const compareBuild = compareBuild_1; +const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)); +var rsort_1 = rsort; +const compare$6 = compare_1; +const gt$3 = (a, b, loose) => compare$6(a, b, loose) > 0; +var gt_1 = gt$3; +const compare$5 = compare_1; +const lt$2 = (a, b, loose) => compare$5(a, b, loose) < 0; +var lt_1 = lt$2; +const compare$4 = compare_1; +const neq$1 = (a, b, loose) => compare$4(a, b, loose) !== 0; +var neq_1 = neq$1; +const compare$3 = compare_1; +const gte$2 = (a, b, loose) => compare$3(a, b, loose) >= 0; +var gte_1 = gte$2; +const compare$2 = compare_1; +const lte$2 = (a, b, loose) => compare$2(a, b, loose) <= 0; +var lte_1 = lte$2; +const eq = eq_1; +const neq = neq_1; +const gt$2 = gt_1; +const gte$1 = gte_1; +const lt$1 = lt_1; +const lte$1 = lte_1; +const cmp = (a, op, b, loose) => { + switch (op) { + case '===': + if (typeof a === 'object') { + a = a.version; + } + if (typeof b === 'object') { + b = b.version; + } + return a === b; + case '!==': + if (typeof a === 'object') { + a = a.version; + } + if (typeof b === 'object') { + b = b.version; + } + return a !== b; + case '': + case '=': + case '==': + return eq(a, b, loose); + case '!=': + return neq(a, b, loose); + case '>': + return gt$2(a, b, loose); + case '>=': + return gte$1(a, b, loose); + case '<': + return lt$1(a, b, loose); + case '<=': + return lte$1(a, b, loose); + default: + throw new TypeError(`Invalid operator: ${op}`); + } +}; +var cmp_1 = cmp; +const SemVer$4 = semver$2; +const parse = parse_1; +const { + re, + t +} = re$3.exports; +const coerce = (version, options) => { + if (version instanceof SemVer$4) { + return version; + } + if (typeof version === 'number') { + version = String(version); + } + if (typeof version !== 'string') { + return null; + } + options = options || {}; + let match = null; + if (!options.rtl) { + match = version.match(re[t.COERCE]); + } else { + let next; + while ((next = re[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)) { + if (!match || next.index + next[0].length !== match.index + match[0].length) { + match = next; + } + re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length; + } + re[t.COERCERTL].lastIndex = -1; + } + if (match === null) { + return null; + } + return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options); +}; +var coerce_1 = coerce; +var iterator; +var hasRequiredIterator; +function requireIterator() { + if (hasRequiredIterator) return iterator; + hasRequiredIterator = 1; + iterator = function (Yallist) { + Yallist.prototype[Symbol.iterator] = function* () { + for (let walker = this.head; walker; walker = walker.next) { + yield walker.value; + } + }; + }; + return iterator; +} +var yallist; +var hasRequiredYallist; +function requireYallist() { + if (hasRequiredYallist) return yallist; + hasRequiredYallist = 1; + yallist = Yallist; + Yallist.Node = Node; + Yallist.create = Yallist; + function Yallist(list) { + var self = this; + if (!(self instanceof Yallist)) { + self = new Yallist(); + } + self.tail = null; + self.head = null; + self.length = 0; + if (list && typeof list.forEach === 'function') { + list.forEach(function (item) { + self.push(item); + }); + } else if (arguments.length > 0) { + for (var i = 0, l = arguments.length; i < l; i++) { + self.push(arguments[i]); + } + } + return self; + } + Yallist.prototype.removeNode = function (node) { + if (node.list !== this) { + throw new Error('removing node which does not belong to this list'); + } + var next = node.next; + var prev = node.prev; + if (next) { + next.prev = prev; + } + if (prev) { + prev.next = next; + } + if (node === this.head) { + this.head = next; + } + if (node === this.tail) { + this.tail = prev; + } + node.list.length--; + node.next = null; + node.prev = null; + node.list = null; + return next; + }; + Yallist.prototype.unshiftNode = function (node) { + if (node === this.head) { + return; + } + if (node.list) { + node.list.removeNode(node); + } + var head = this.head; + node.list = this; + node.next = head; + if (head) { + head.prev = node; + } + this.head = node; + if (!this.tail) { + this.tail = node; + } + this.length++; + }; + Yallist.prototype.pushNode = function (node) { + if (node === this.tail) { + return; + } + if (node.list) { + node.list.removeNode(node); + } + var tail = this.tail; + node.list = this; + node.prev = tail; + if (tail) { + tail.next = node; + } + this.tail = node; + if (!this.head) { + this.head = node; + } + this.length++; + }; + Yallist.prototype.push = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + push(this, arguments[i]); + } + return this.length; + }; + Yallist.prototype.unshift = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + unshift(this, arguments[i]); + } + return this.length; + }; + Yallist.prototype.pop = function () { + if (!this.tail) { + return undefined; + } + var res = this.tail.value; + this.tail = this.tail.prev; + if (this.tail) { + this.tail.next = null; + } else { + this.head = null; + } + this.length--; + return res; + }; + Yallist.prototype.shift = function () { + if (!this.head) { + return undefined; + } + var res = this.head.value; + this.head = this.head.next; + if (this.head) { + this.head.prev = null; + } else { + this.tail = null; + } + this.length--; + return res; + }; + Yallist.prototype.forEach = function (fn, thisp) { + thisp = thisp || this; + for (var walker = this.head, i = 0; walker !== null; i++) { + fn.call(thisp, walker.value, i, this); + walker = walker.next; + } + }; + Yallist.prototype.forEachReverse = function (fn, thisp) { + thisp = thisp || this; + for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { + fn.call(thisp, walker.value, i, this); + walker = walker.prev; + } + }; + Yallist.prototype.get = function (n) { + for (var i = 0, walker = this.head; walker !== null && i < n; i++) { + walker = walker.next; + } + if (i === n && walker !== null) { + return walker.value; + } + }; + Yallist.prototype.getReverse = function (n) { + for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { + walker = walker.prev; + } + if (i === n && walker !== null) { + return walker.value; + } + }; + Yallist.prototype.map = function (fn, thisp) { + thisp = thisp || this; + var res = new Yallist(); + for (var walker = this.head; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.next; + } + return res; + }; + Yallist.prototype.mapReverse = function (fn, thisp) { + thisp = thisp || this; + var res = new Yallist(); + for (var walker = this.tail; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.prev; + } + return res; + }; + Yallist.prototype.reduce = function (fn, initial) { + var acc; + var walker = this.head; + if (arguments.length > 1) { + acc = initial; + } else if (this.head) { + walker = this.head.next; + acc = this.head.value; + } else { + throw new TypeError('Reduce of empty list with no initial value'); + } + for (var i = 0; walker !== null; i++) { + acc = fn(acc, walker.value, i); + walker = walker.next; + } + return acc; + }; + Yallist.prototype.reduceReverse = function (fn, initial) { + var acc; + var walker = this.tail; + if (arguments.length > 1) { + acc = initial; + } else if (this.tail) { + walker = this.tail.prev; + acc = this.tail.value; + } else { + throw new TypeError('Reduce of empty list with no initial value'); + } + for (var i = this.length - 1; walker !== null; i--) { + acc = fn(acc, walker.value, i); + walker = walker.prev; + } + return acc; + }; + Yallist.prototype.toArray = function () { + var arr = new Array(this.length); + for (var i = 0, walker = this.head; walker !== null; i++) { + arr[i] = walker.value; + walker = walker.next; + } + return arr; + }; + Yallist.prototype.toArrayReverse = function () { + var arr = new Array(this.length); + for (var i = 0, walker = this.tail; walker !== null; i++) { + arr[i] = walker.value; + walker = walker.prev; + } + return arr; + }; + Yallist.prototype.slice = function (from, to) { + to = to || this.length; + if (to < 0) { + to += this.length; + } + from = from || 0; + if (from < 0) { + from += this.length; + } + var ret = new Yallist(); + if (to < from || to < 0) { + return ret; + } + if (from < 0) { + from = 0; + } + if (to > this.length) { + to = this.length; + } + for (var i = 0, walker = this.head; walker !== null && i < from; i++) { + walker = walker.next; + } + for (; walker !== null && i < to; i++, walker = walker.next) { + ret.push(walker.value); + } + return ret; + }; + Yallist.prototype.sliceReverse = function (from, to) { + to = to || this.length; + if (to < 0) { + to += this.length; + } + from = from || 0; + if (from < 0) { + from += this.length; + } + var ret = new Yallist(); + if (to < from || to < 0) { + return ret; + } + if (from < 0) { + from = 0; + } + if (to > this.length) { + to = this.length; + } + for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { + walker = walker.prev; + } + for (; walker !== null && i > from; i--, walker = walker.prev) { + ret.push(walker.value); + } + return ret; + }; + Yallist.prototype.splice = function (start, deleteCount, ...nodes) { + if (start > this.length) { + start = this.length - 1; + } + if (start < 0) { + start = this.length + start; + } + for (var i = 0, walker = this.head; walker !== null && i < start; i++) { + walker = walker.next; + } + var ret = []; + for (var i = 0; walker && i < deleteCount; i++) { + ret.push(walker.value); + walker = this.removeNode(walker); + } + if (walker === null) { + walker = this.tail; + } + if (walker !== this.head && walker !== this.tail) { + walker = walker.prev; + } + for (var i = 0; i < nodes.length; i++) { + walker = insert(this, walker, nodes[i]); + } + return ret; + }; + Yallist.prototype.reverse = function () { + var head = this.head; + var tail = this.tail; + for (var walker = head; walker !== null; walker = walker.prev) { + var p = walker.prev; + walker.prev = walker.next; + walker.next = p; + } + this.head = tail; + this.tail = head; + return this; + }; + function insert(self, node, value) { + var inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self); + if (inserted.next === null) { + self.tail = inserted; + } + if (inserted.prev === null) { + self.head = inserted; + } + self.length++; + return inserted; + } + function push(self, item) { + self.tail = new Node(item, self.tail, null, self); + if (!self.head) { + self.head = self.tail; + } + self.length++; + } + function unshift(self, item) { + self.head = new Node(item, null, self.head, self); + if (!self.tail) { + self.tail = self.head; + } + self.length++; + } + function Node(value, prev, next, list) { + if (!(this instanceof Node)) { + return new Node(value, prev, next, list); + } + this.list = list; + this.value = value; + if (prev) { + prev.next = this; + this.prev = prev; + } else { + this.prev = null; + } + if (next) { + next.prev = this; + this.next = next; + } else { + this.next = null; + } + } + try { + requireIterator()(Yallist); + } catch (er) {} + return yallist; +} +var lruCache; +var hasRequiredLruCache; +function requireLruCache() { + if (hasRequiredLruCache) return lruCache; + hasRequiredLruCache = 1; + + const Yallist = requireYallist(); + const MAX = Symbol('max'); + const LENGTH = Symbol('length'); + const LENGTH_CALCULATOR = Symbol('lengthCalculator'); + const ALLOW_STALE = Symbol('allowStale'); + const MAX_AGE = Symbol('maxAge'); + const DISPOSE = Symbol('dispose'); + const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet'); + const LRU_LIST = Symbol('lruList'); + const CACHE = Symbol('cache'); + const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet'); + const naiveLength = () => 1; + + class LRUCache { + constructor(options) { + if (typeof options === 'number') options = { + max: options + }; + if (!options) options = {}; + if (options.max && (typeof options.max !== 'number' || options.max < 0)) throw new TypeError('max must be a non-negative number'); + this[MAX] = options.max || Infinity; + const lc = options.length || naiveLength; + this[LENGTH_CALCULATOR] = typeof lc !== 'function' ? naiveLength : lc; + this[ALLOW_STALE] = options.stale || false; + if (options.maxAge && typeof options.maxAge !== 'number') throw new TypeError('maxAge must be a number'); + this[MAX_AGE] = options.maxAge || 0; + this[DISPOSE] = options.dispose; + this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false; + this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false; + this.reset(); + } + + set max(mL) { + if (typeof mL !== 'number' || mL < 0) throw new TypeError('max must be a non-negative number'); + this[MAX] = mL || Infinity; + trim(this); + } + get max() { + return this[MAX]; + } + set allowStale(allowStale) { + this[ALLOW_STALE] = !!allowStale; + } + get allowStale() { + return this[ALLOW_STALE]; + } + set maxAge(mA) { + if (typeof mA !== 'number') throw new TypeError('maxAge must be a non-negative number'); + this[MAX_AGE] = mA; + trim(this); + } + get maxAge() { + return this[MAX_AGE]; + } + + set lengthCalculator(lC) { + if (typeof lC !== 'function') lC = naiveLength; + if (lC !== this[LENGTH_CALCULATOR]) { + this[LENGTH_CALCULATOR] = lC; + this[LENGTH] = 0; + this[LRU_LIST].forEach(hit => { + hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); + this[LENGTH] += hit.length; + }); + } + trim(this); + } + get lengthCalculator() { + return this[LENGTH_CALCULATOR]; + } + get length() { + return this[LENGTH]; + } + get itemCount() { + return this[LRU_LIST].length; + } + rforEach(fn, thisp) { + thisp = thisp || this; + for (let walker = this[LRU_LIST].tail; walker !== null;) { + const prev = walker.prev; + forEachStep(this, fn, walker, thisp); + walker = prev; + } + } + forEach(fn, thisp) { + thisp = thisp || this; + for (let walker = this[LRU_LIST].head; walker !== null;) { + const next = walker.next; + forEachStep(this, fn, walker, thisp); + walker = next; + } + } + keys() { + return this[LRU_LIST].toArray().map(k => k.key); + } + values() { + return this[LRU_LIST].toArray().map(k => k.value); + } + reset() { + if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) { + this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)); + } + this[CACHE] = new Map(); + this[LRU_LIST] = new Yallist(); + this[LENGTH] = 0; + } + + dump() { + return this[LRU_LIST].map(hit => isStale(this, hit) ? false : { + k: hit.key, + v: hit.value, + e: hit.now + (hit.maxAge || 0) + }).toArray().filter(h => h); + } + dumpLru() { + return this[LRU_LIST]; + } + set(key, value, maxAge) { + maxAge = maxAge || this[MAX_AGE]; + if (maxAge && typeof maxAge !== 'number') throw new TypeError('maxAge must be a number'); + const now = maxAge ? Date.now() : 0; + const len = this[LENGTH_CALCULATOR](value, key); + if (this[CACHE].has(key)) { + if (len > this[MAX]) { + del(this, this[CACHE].get(key)); + return false; + } + const node = this[CACHE].get(key); + const item = node.value; + + if (this[DISPOSE]) { + if (!this[NO_DISPOSE_ON_SET]) this[DISPOSE](key, item.value); + } + item.now = now; + item.maxAge = maxAge; + item.value = value; + this[LENGTH] += len - item.length; + item.length = len; + this.get(key); + trim(this); + return true; + } + const hit = new Entry(key, value, len, now, maxAge); + + if (hit.length > this[MAX]) { + if (this[DISPOSE]) this[DISPOSE](key, value); + return false; + } + this[LENGTH] += hit.length; + this[LRU_LIST].unshift(hit); + this[CACHE].set(key, this[LRU_LIST].head); + trim(this); + return true; + } + has(key) { + if (!this[CACHE].has(key)) return false; + const hit = this[CACHE].get(key).value; + return !isStale(this, hit); + } + get(key) { + return get(this, key, true); + } + peek(key) { + return get(this, key, false); + } + pop() { + const node = this[LRU_LIST].tail; + if (!node) return null; + del(this, node); + return node.value; + } + del(key) { + del(this, this[CACHE].get(key)); + } + load(arr) { + this.reset(); + const now = Date.now(); + for (let l = arr.length - 1; l >= 0; l--) { + const hit = arr[l]; + const expiresAt = hit.e || 0; + if (expiresAt === 0) + this.set(hit.k, hit.v);else { + const maxAge = expiresAt - now; + if (maxAge > 0) { + this.set(hit.k, hit.v, maxAge); + } + } + } + } + prune() { + this[CACHE].forEach((value, key) => get(this, key, false)); + } + } + const get = (self, key, doUse) => { + const node = self[CACHE].get(key); + if (node) { + const hit = node.value; + if (isStale(self, hit)) { + del(self, node); + if (!self[ALLOW_STALE]) return undefined; + } else { + if (doUse) { + if (self[UPDATE_AGE_ON_GET]) node.value.now = Date.now(); + self[LRU_LIST].unshiftNode(node); + } + } + return hit.value; + } + }; + const isStale = (self, hit) => { + if (!hit || !hit.maxAge && !self[MAX_AGE]) return false; + const diff = Date.now() - hit.now; + return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE]; + }; + const trim = self => { + if (self[LENGTH] > self[MAX]) { + for (let walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) { + const prev = walker.prev; + del(self, walker); + walker = prev; + } + } + }; + const del = (self, node) => { + if (node) { + const hit = node.value; + if (self[DISPOSE]) self[DISPOSE](hit.key, hit.value); + self[LENGTH] -= hit.length; + self[CACHE].delete(hit.key); + self[LRU_LIST].removeNode(node); + } + }; + class Entry { + constructor(key, value, length, now, maxAge) { + this.key = key; + this.value = value; + this.length = length; + this.now = now; + this.maxAge = maxAge || 0; + } + } + const forEachStep = (self, fn, node, thisp) => { + let hit = node.value; + if (isStale(self, hit)) { + del(self, node); + if (!self[ALLOW_STALE]) hit = undefined; + } + if (hit) fn.call(thisp, hit.value, hit.key, self); + }; + lruCache = LRUCache; + return lruCache; +} +var range; +var hasRequiredRange; +function requireRange() { + if (hasRequiredRange) return range; + hasRequiredRange = 1; + class Range { + constructor(range, options) { + options = parseOptions(options); + if (range instanceof Range) { + if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { + return range; + } else { + return new Range(range.raw, options); + } + } + if (range instanceof Comparator) { + this.raw = range.value; + this.set = [[range]]; + this.format(); + return this; + } + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + + this.raw = range; + this.set = range.split('||') + .map(r => this.parseRange(r.trim())) + .filter(c => c.length); + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${range}`); + } + + if (this.set.length > 1) { + const first = this.set[0]; + this.set = this.set.filter(c => !isNullSet(c[0])); + if (this.set.length === 0) { + this.set = [first]; + } else if (this.set.length > 1) { + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c]; + break; + } + } + } + } + this.format(); + } + format() { + this.range = this.set.map(comps => { + return comps.join(' ').trim(); + }).join('||').trim(); + return this.range; + } + toString() { + return this.range; + } + parseRange(range) { + range = range.trim(); + + const memoOpts = Object.keys(this.options).join(','); + const memoKey = `parseRange:${memoOpts}:${range}`; + const cached = cache.get(memoKey); + if (cached) { + return cached; + } + const loose = this.options.loose; + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); + debug('hyphen replace', range); + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); + debug('comparator trim', range); + + range = range.replace(re[t.TILDETRIM], tildeTrimReplace); + + range = range.replace(re[t.CARETTRIM], caretTrimReplace); + + range = range.split(/\s+/).join(' '); + + let rangeList = range.split(' ').map(comp => parseComparator(comp, this.options)).join(' ').split(/\s+/) + .map(comp => replaceGTE0(comp, this.options)); + if (loose) { + rangeList = rangeList.filter(comp => { + debug('loose invalid filter', comp, this.options); + return !!comp.match(re[t.COMPARATORLOOSE]); + }); + } + debug('range list', rangeList); + + const rangeMap = new Map(); + const comparators = rangeList.map(comp => new Comparator(comp, this.options)); + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp]; + } + rangeMap.set(comp.value, comp); + } + if (rangeMap.size > 1 && rangeMap.has('')) { + rangeMap.delete(''); + } + const result = [...rangeMap.values()]; + cache.set(memoKey, result); + return result; + } + intersects(range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required'); + } + return this.set.some(thisComparators => { + return isSatisfiable(thisComparators, options) && range.set.some(rangeComparators => { + return isSatisfiable(rangeComparators, options) && thisComparators.every(thisComparator => { + return rangeComparators.every(rangeComparator => { + return thisComparator.intersects(rangeComparator, options); + }); + }); + }); + }); + } + + test(version) { + if (!version) { + return false; + } + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false; + } + } + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true; + } + } + return false; + } + } + range = Range; + const LRU = requireLruCache(); + const cache = new LRU({ + max: 1000 + }); + const parseOptions = parseOptions_1; + const Comparator = requireComparator(); + const debug = debug_1; + const SemVer = semver$2; + const { + re, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace + } = re$3.exports; + const isNullSet = c => c.value === '<0.0.0-0'; + const isAny = c => c.value === ''; + + const isSatisfiable = (comparators, options) => { + let result = true; + const remainingComparators = comparators.slice(); + let testComparator = remainingComparators.pop(); + while (result && remainingComparators.length) { + result = remainingComparators.every(otherComparator => { + return testComparator.intersects(otherComparator, options); + }); + testComparator = remainingComparators.pop(); + } + return result; + }; + + const parseComparator = (comp, options) => { + debug('comp', comp, options); + comp = replaceCarets(comp, options); + debug('caret', comp); + comp = replaceTildes(comp, options); + debug('tildes', comp); + comp = replaceXRanges(comp, options); + debug('xrange', comp); + comp = replaceStars(comp, options); + debug('stars', comp); + return comp; + }; + const isX = id => !id || id.toLowerCase() === 'x' || id === '*'; + + const replaceTildes = (comp, options) => comp.trim().split(/\s+/).map(c => { + return replaceTilde(c, options); + }).join(' '); + const replaceTilde = (comp, options) => { + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; + return comp.replace(r, (_, M, m, p, pr) => { + debug('tilde', comp, _, M, m, p, pr); + let ret; + if (isX(M)) { + ret = ''; + } else if (isX(m)) { + ret = `>=${M}.0.0 <${+M + 1}.0.0-0`; + } else if (isX(p)) { + ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`; + } else if (pr) { + debug('replaceTilde pr', pr); + ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; + } else { + ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`; + } + debug('tilde return', ret); + return ret; + }); + }; + + const replaceCarets = (comp, options) => comp.trim().split(/\s+/).map(c => { + return replaceCaret(c, options); + }).join(' '); + const replaceCaret = (comp, options) => { + debug('caret', comp, options); + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]; + const z = options.includePrerelease ? '-0' : ''; + return comp.replace(r, (_, M, m, p, pr) => { + debug('caret', comp, _, M, m, p, pr); + let ret; + if (isX(M)) { + ret = ''; + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`; + } else if (isX(p)) { + if (M === '0') { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`; + } else { + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`; + } + } else if (pr) { + debug('replaceCaret pr', pr); + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`; + } else { + ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; + } + } else { + ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`; + } + } else { + debug('no pr'); + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`; + } else { + ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`; + } + } else { + ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`; + } + } + debug('caret return', ret); + return ret; + }); + }; + const replaceXRanges = (comp, options) => { + debug('replaceXRanges', comp, options); + return comp.split(/\s+/).map(c => { + return replaceXRange(c, options); + }).join(' '); + }; + const replaceXRange = (comp, options) => { + comp = comp.trim(); + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug('xRange', comp, ret, gtlt, M, m, p, pr); + const xM = isX(M); + const xm = xM || isX(m); + const xp = xm || isX(p); + const anyX = xp; + if (gtlt === '=' && anyX) { + gtlt = ''; + } + + pr = options.includePrerelease ? '-0' : ''; + if (xM) { + if (gtlt === '>' || gtlt === '<') { + ret = '<0.0.0-0'; + } else { + ret = '*'; + } + } else if (gtlt && anyX) { + if (xm) { + m = 0; + } + p = 0; + if (gtlt === '>') { + gtlt = '>='; + if (xm) { + M = +M + 1; + m = 0; + p = 0; + } else { + m = +m + 1; + p = 0; + } + } else if (gtlt === '<=') { + gtlt = '<'; + if (xm) { + M = +M + 1; + } else { + m = +m + 1; + } + } + if (gtlt === '<') { + pr = '-0'; + } + ret = `${gtlt + M}.${m}.${p}${pr}`; + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; + } else if (xp) { + ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`; + } + debug('xRange return', ret); + return ret; + }); + }; + + const replaceStars = (comp, options) => { + debug('replaceStars', comp, options); + return comp.trim().replace(re[t.STAR], ''); + }; + const replaceGTE0 = (comp, options) => { + debug('replaceGTE0', comp, options); + return comp.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], ''); + }; + + const hyphenReplace = incPr => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) => { + if (isX(fM)) { + from = ''; + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? '-0' : ''}`; + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`; + } else if (fpr) { + from = `>=${from}`; + } else { + from = `>=${from}${incPr ? '-0' : ''}`; + } + if (isX(tM)) { + to = ''; + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0`; + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0`; + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}`; + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0`; + } else { + to = `<=${to}`; + } + return `${from} ${to}`.trim(); + }; + const testSet = (set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false; + } + } + if (version.prerelease.length && !options.includePrerelease) { + for (let i = 0; i < set.length; i++) { + debug(set[i].semver); + if (set[i].semver === Comparator.ANY) { + continue; + } + if (set[i].semver.prerelease.length > 0) { + const allowed = set[i].semver; + if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { + return true; + } + } + } + + return false; + } + return true; + }; + return range; +} +var comparator; +var hasRequiredComparator; +function requireComparator() { + if (hasRequiredComparator) return comparator; + hasRequiredComparator = 1; + const ANY = Symbol('SemVer ANY'); + class Comparator { + static get ANY() { + return ANY; + } + constructor(comp, options) { + options = parseOptions(options); + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp; + } else { + comp = comp.value; + } + } + debug('comparator', comp, options); + this.options = options; + this.loose = !!options.loose; + this.parse(comp); + if (this.semver === ANY) { + this.value = ''; + } else { + this.value = this.operator + this.semver.version; + } + debug('comp', this); + } + parse(comp) { + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; + const m = comp.match(r); + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`); + } + this.operator = m[1] !== undefined ? m[1] : ''; + if (this.operator === '=') { + this.operator = ''; + } + + if (!m[2]) { + this.semver = ANY; + } else { + this.semver = new SemVer(m[2], this.options.loose); + } + } + toString() { + return this.value; + } + test(version) { + debug('Comparator.test', version, this.options.loose); + if (this.semver === ANY || version === ANY) { + return true; + } + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false; + } + } + return cmp(version, this.operator, this.semver, this.options); + } + intersects(comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required'); + } + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + }; + } + if (this.operator === '') { + if (this.value === '') { + return true; + } + return new Range(comp.value, options).test(this.value); + } else if (comp.operator === '') { + if (comp.value === '') { + return true; + } + return new Range(this.value, options).test(comp.semver); + } + const sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>'); + const sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<'); + const sameSemVer = this.semver.version === comp.semver.version; + const differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<='); + const oppositeDirectionsLessThan = cmp(this.semver, '<', comp.semver, options) && (this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<'); + const oppositeDirectionsGreaterThan = cmp(this.semver, '>', comp.semver, options) && (this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>'); + return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; + } + } + comparator = Comparator; + const parseOptions = parseOptions_1; + const { + re, + t + } = re$3.exports; + const cmp = cmp_1; + const debug = debug_1; + const SemVer = semver$2; + const Range = requireRange(); + return comparator; +} +const Range$8 = requireRange(); +const satisfies$3 = (version, range, options) => { + try { + range = new Range$8(range, options); + } catch (er) { + return false; + } + return range.test(version); +}; +var satisfies_1 = satisfies$3; +const Range$7 = requireRange(); + +const toComparators = (range, options) => new Range$7(range, options).set.map(comp => comp.map(c => c.value).join(' ').trim().split(' ')); +var toComparators_1 = toComparators; +const SemVer$3 = semver$2; +const Range$6 = requireRange(); +const maxSatisfying = (versions, range, options) => { + let max = null; + let maxSV = null; + let rangeObj = null; + try { + rangeObj = new Range$6(range, options); + } catch (er) { + return null; + } + versions.forEach(v => { + if (rangeObj.test(v)) { + if (!max || maxSV.compare(v) === -1) { + max = v; + maxSV = new SemVer$3(max, options); + } + } + }); + return max; +}; +var maxSatisfying_1 = maxSatisfying; +const SemVer$2 = semver$2; +const Range$5 = requireRange(); +const minSatisfying = (versions, range, options) => { + let min = null; + let minSV = null; + let rangeObj = null; + try { + rangeObj = new Range$5(range, options); + } catch (er) { + return null; + } + versions.forEach(v => { + if (rangeObj.test(v)) { + if (!min || minSV.compare(v) === 1) { + min = v; + minSV = new SemVer$2(min, options); + } + } + }); + return min; +}; +var minSatisfying_1 = minSatisfying; +const SemVer$1 = semver$2; +const Range$4 = requireRange(); +const gt$1 = gt_1; +const minVersion = (range, loose) => { + range = new Range$4(range, loose); + let minver = new SemVer$1('0.0.0'); + if (range.test(minver)) { + return minver; + } + minver = new SemVer$1('0.0.0-0'); + if (range.test(minver)) { + return minver; + } + minver = null; + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; + let setMin = null; + comparators.forEach(comparator => { + const compver = new SemVer$1(comparator.semver.version); + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++; + } else { + compver.prerelease.push(0); + } + compver.raw = compver.format(); + case '': + case '>=': + if (!setMin || gt$1(compver, setMin)) { + setMin = compver; + } + break; + case '<': + case '<=': + break; + default: + throw new Error(`Unexpected operation: ${comparator.operator}`); + } + }); + if (setMin && (!minver || gt$1(minver, setMin))) { + minver = setMin; + } + } + if (minver && range.test(minver)) { + return minver; + } + return null; +}; +var minVersion_1 = minVersion; +const Range$3 = requireRange(); +const validRange = (range, options) => { + try { + return new Range$3(range, options).range || '*'; + } catch (er) { + return null; + } +}; +var valid = validRange; +const SemVer = semver$2; +const Comparator$1 = requireComparator(); +const { + ANY: ANY$1 +} = Comparator$1; +const Range$2 = requireRange(); +const satisfies$2 = satisfies_1; +const gt = gt_1; +const lt = lt_1; +const lte = lte_1; +const gte = gte_1; +const outside$2 = (version, range, hilo, options) => { + version = new SemVer(version, options); + range = new Range$2(range, options); + let gtfn, ltefn, ltfn, comp, ecomp; + switch (hilo) { + case '>': + gtfn = gt; + ltefn = lte; + ltfn = lt; + comp = '>'; + ecomp = '>='; + break; + case '<': + gtfn = lt; + ltefn = gte; + ltfn = gt; + comp = '<'; + ecomp = '<='; + break; + default: + throw new TypeError('Must provide a hilo val of "<" or ">"'); + } + + if (satisfies$2(version, range, options)) { + return false; + } + + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; + let high = null; + let low = null; + comparators.forEach(comparator => { + if (comparator.semver === ANY$1) { + comparator = new Comparator$1('>=0.0.0'); + } + high = high || comparator; + low = low || comparator; + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator; + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator; + } + }); + + if (high.operator === comp || high.operator === ecomp) { + return false; + } + + if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) { + return false; + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false; + } + } + return true; +}; +var outside_1 = outside$2; + +const outside$1 = outside_1; +const gtr = (version, range, options) => outside$1(version, range, '>', options); +var gtr_1 = gtr; +const outside = outside_1; +const ltr = (version, range, options) => outside(version, range, '<', options); +var ltr_1 = ltr; +const Range$1 = requireRange(); +const intersects = (r1, r2, options) => { + r1 = new Range$1(r1, options); + r2 = new Range$1(r2, options); + return r1.intersects(r2); +}; +var intersects_1 = intersects; + +const satisfies$1 = satisfies_1; +const compare$1 = compare_1; +var simplify = (versions, range, options) => { + const set = []; + let first = null; + let prev = null; + const v = versions.sort((a, b) => compare$1(a, b, options)); + for (const version of v) { + const included = satisfies$1(version, range, options); + if (included) { + prev = version; + if (!first) { + first = version; + } + } else { + if (prev) { + set.push([first, prev]); + } + prev = null; + first = null; + } + } + if (first) { + set.push([first, null]); + } + const ranges = []; + for (const [min, max] of set) { + if (min === max) { + ranges.push(min); + } else if (!max && min === v[0]) { + ranges.push('*'); + } else if (!max) { + ranges.push(`>=${min}`); + } else if (min === v[0]) { + ranges.push(`<=${max}`); + } else { + ranges.push(`${min} - ${max}`); + } + } + const simplified = ranges.join(' || '); + const original = typeof range.raw === 'string' ? range.raw : String(range); + return simplified.length < original.length ? simplified : range; +}; +const Range = requireRange(); +const Comparator = requireComparator(); +const { + ANY +} = Comparator; +const satisfies = satisfies_1; +const compare = compare_1; + +const subset = (sub, dom, options = {}) => { + if (sub === dom) { + return true; + } + sub = new Range(sub, options); + dom = new Range(dom, options); + let sawNonNull = false; + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options); + sawNonNull = sawNonNull || isSub !== null; + if (isSub) { + continue OUTER; + } + } + if (sawNonNull) { + return false; + } + } + return true; +}; +const simpleSubset = (sub, dom, options) => { + if (sub === dom) { + return true; + } + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true; + } else if (options.includePrerelease) { + sub = [new Comparator('>=0.0.0-0')]; + } else { + sub = [new Comparator('>=0.0.0')]; + } + } + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true; + } else { + dom = [new Comparator('>=0.0.0')]; + } + } + const eqSet = new Set(); + let gt, lt; + for (const c of sub) { + if (c.operator === '>' || c.operator === '>=') { + gt = higherGT(gt, c, options); + } else if (c.operator === '<' || c.operator === '<=') { + lt = lowerLT(lt, c, options); + } else { + eqSet.add(c.semver); + } + } + if (eqSet.size > 1) { + return null; + } + let gtltComp; + if (gt && lt) { + gtltComp = compare(gt.semver, lt.semver, options); + if (gtltComp > 0) { + return null; + } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) { + return null; + } + } + + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) { + return null; + } + if (lt && !satisfies(eq, String(lt), options)) { + return null; + } + for (const c of dom) { + if (!satisfies(eq, String(c), options)) { + return false; + } + } + return true; + } + let higher, lower; + let hasDomLT, hasDomGT; + let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false; + let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false; + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false; + } + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='; + hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='; + if (gt) { + if (needDomGTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) { + needDomGTPre = false; + } + } + if (c.operator === '>' || c.operator === '>=') { + higher = higherGT(gt, c, options); + if (higher === c && higher !== gt) { + return false; + } + } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) { + return false; + } + } + if (lt) { + if (needDomLTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) { + needDomLTPre = false; + } + } + if (c.operator === '<' || c.operator === '<=') { + lower = lowerLT(lt, c, options); + if (lower === c && lower !== lt) { + return false; + } + } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) { + return false; + } + } + if (!c.operator && (lt || gt) && gtltComp !== 0) { + return false; + } + } + + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false; + } + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false; + } + + if (needDomGTPre || needDomLTPre) { + return false; + } + return true; +}; + +const higherGT = (a, b, options) => { + if (!a) { + return b; + } + const comp = compare(a.semver, b.semver, options); + return comp > 0 ? a : comp < 0 ? b : b.operator === '>' && a.operator === '>=' ? b : a; +}; + +const lowerLT = (a, b, options) => { + if (!a) { + return b; + } + const comp = compare(a.semver, b.semver, options); + return comp < 0 ? a : comp > 0 ? b : b.operator === '<' && a.operator === '<=' ? b : a; +}; +var subset_1 = subset; + +const internalRe = re$3.exports; +var semver$1 = { + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + SemVer: semver$2, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers, + parse: parse_1, + valid: valid_1, + clean: clean_1, + inc: inc_1, + diff: diff_1, + major: major_1, + minor: minor_1, + patch: patch_1, + prerelease: prerelease_1, + compare: compare_1, + rcompare: rcompare_1, + compareLoose: compareLoose_1, + compareBuild: compareBuild_1, + sort: sort_1, + rsort: rsort_1, + gt: gt_1, + lt: lt_1, + eq: eq_1, + neq: neq_1, + gte: gte_1, + lte: lte_1, + cmp: cmp_1, + coerce: coerce_1, + Comparator: requireComparator(), + Range: requireRange(), + satisfies: satisfies_1, + toComparators: toComparators_1, + maxSatisfying: maxSatisfying_1, + minSatisfying: minSatisfying_1, + minVersion: minVersion_1, + validRange: valid, + outside: outside_1, + gtr: gtr_1, + ltr: ltr_1, + intersects: intersects_1, + simplifyRange: simplify, + subset: subset_1 +}; +var semver = semver$1; +var builtins = function ({ + version = process.version, + experimental = false +} = {}) { + var coreModules = ['assert', 'buffer', 'child_process', 'cluster', 'console', 'constants', 'crypto', 'dgram', 'dns', 'domain', 'events', 'fs', 'http', 'https', 'module', 'net', 'os', 'path', 'punycode', 'querystring', 'readline', 'repl', 'stream', 'string_decoder', 'sys', 'timers', 'tls', 'tty', 'url', 'util', 'vm', 'zlib']; + if (semver.lt(version, '6.0.0')) coreModules.push('freelist'); + if (semver.gte(version, '1.0.0')) coreModules.push('v8'); + if (semver.gte(version, '1.1.0')) coreModules.push('process'); + if (semver.gte(version, '8.0.0')) coreModules.push('inspector'); + if (semver.gte(version, '8.1.0')) coreModules.push('async_hooks'); + if (semver.gte(version, '8.4.0')) coreModules.push('http2'); + if (semver.gte(version, '8.5.0')) coreModules.push('perf_hooks'); + if (semver.gte(version, '10.0.0')) coreModules.push('trace_events'); + if (semver.gte(version, '10.5.0') && (experimental || semver.gte(version, '12.0.0'))) { + coreModules.push('worker_threads'); + } + if (semver.gte(version, '12.16.0') && experimental) { + coreModules.push('wasi'); + } + return coreModules; +}; + +const reader = { + read +}; + +function read(jsonPath) { + return find(_path().dirname(jsonPath)); +} + +function find(dir) { + try { + const string = _fs().default.readFileSync(_path().toNamespacedPath(_path().join(dir, 'package.json')), 'utf8'); + return { + string + }; + } catch (error) { + if (error.code === 'ENOENT') { + const parent = _path().dirname(dir); + if (dir !== parent) return find(parent); + return { + string: undefined + }; + } + + throw error; + } +} + +const isWindows = process.platform === 'win32'; +const own$1 = {}.hasOwnProperty; +const codes = {}; + +const messages = new Map(); +const nodeInternalPrefix = '__node_internal_'; +let userStackTraceLimit; +codes.ERR_INVALID_MODULE_SPECIFIER = createError('ERR_INVALID_MODULE_SPECIFIER', +(request, reason, base = undefined) => { + return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ''}`; +}, TypeError); +codes.ERR_INVALID_PACKAGE_CONFIG = createError('ERR_INVALID_PACKAGE_CONFIG', +(path, base, message) => { + return `Invalid package config ${path}${base ? ` while importing ${base}` : ''}${message ? `. ${message}` : ''}`; +}, Error); +codes.ERR_INVALID_PACKAGE_TARGET = createError('ERR_INVALID_PACKAGE_TARGET', +(pkgPath, key, target, isImport = false, base = undefined) => { + const relError = typeof target === 'string' && !isImport && target.length > 0 && !target.startsWith('./'); + if (key === '.') { + _assert()(isImport === false); + return `Invalid "exports" main target ${JSON.stringify(target)} defined ` + `in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ''}${relError ? '; targets must start with "./"' : ''}`; + } + return `Invalid "${isImport ? 'imports' : 'exports'}" target ${JSON.stringify(target)} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ''}${relError ? '; targets must start with "./"' : ''}`; +}, Error); +codes.ERR_MODULE_NOT_FOUND = createError('ERR_MODULE_NOT_FOUND', +(path, base, type = 'package') => { + return `Cannot find ${type} '${path}' imported from ${base}`; +}, Error); +codes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError('ERR_PACKAGE_IMPORT_NOT_DEFINED', +(specifier, packagePath, base) => { + return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ''} imported from ${base}`; +}, TypeError); +codes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError('ERR_PACKAGE_PATH_NOT_EXPORTED', +(pkgPath, subpath, base = undefined) => { + if (subpath === '.') return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ''}`; + return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ''}`; +}, Error); +codes.ERR_UNSUPPORTED_DIR_IMPORT = createError('ERR_UNSUPPORTED_DIR_IMPORT', "Directory import '%s' is not supported " + 'resolving ES modules imported from %s', Error); +codes.ERR_UNKNOWN_FILE_EXTENSION = createError('ERR_UNKNOWN_FILE_EXTENSION', 'Unknown file extension "%s" for %s', TypeError); +codes.ERR_INVALID_ARG_VALUE = createError('ERR_INVALID_ARG_VALUE', +(name, value, reason = 'is invalid') => { + let inspected = (0, _util().inspect)(value); + if (inspected.length > 128) { + inspected = `${inspected.slice(0, 128)}...`; + } + const type = name.includes('.') ? 'property' : 'argument'; + return `The ${type} '${name}' ${reason}. Received ${inspected}`; +}, TypeError +); + +codes.ERR_UNSUPPORTED_ESM_URL_SCHEME = createError('ERR_UNSUPPORTED_ESM_URL_SCHEME', +url => { + let message = 'Only file and data URLs are supported by the default ESM loader'; + if (isWindows && url.protocol.length === 2) { + message += '. On Windows, absolute paths must be valid file:// URLs'; + } + message += `. Received protocol '${url.protocol}'`; + return message; +}, Error); + +function createError(sym, value, def) { + messages.set(sym, value); + return makeNodeErrorWithCode(def, sym); +} + +function makeNodeErrorWithCode(Base, key) { + return NodeError; + function NodeError(...args) { + const limit = Error.stackTraceLimit; + if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0; + const error = new Base(); + if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit; + const message = getMessage(key, args, error); + Object.defineProperty(error, 'message', { + value: message, + enumerable: false, + writable: true, + configurable: true + }); + Object.defineProperty(error, 'toString', { + value() { + return `${this.name} [${key}]: ${this.message}`; + }, + enumerable: false, + writable: true, + configurable: true + }); + addCodeToName(error, Base.name, key); + error.code = key; + return error; + } +} +const addCodeToName = hideStackFrames( +function (error, name, code) { + error = captureLargerStackTrace(error); + error.name = `${name} [${code}]`; + error.stack; + if (name === 'SystemError') { + Object.defineProperty(error, 'name', { + value: name, + enumerable: false, + writable: true, + configurable: true + }); + } else { + delete error.name; + } +}); + +function isErrorStackTraceLimitWritable() { + const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit'); + if (desc === undefined) { + return Object.isExtensible(Error); + } + return own$1.call(desc, 'writable') ? desc.writable : desc.set !== undefined; +} + +function hideStackFrames(fn) { + const hidden = nodeInternalPrefix + fn.name; + Object.defineProperty(fn, 'name', { + value: hidden + }); + return fn; +} +const captureLargerStackTrace = hideStackFrames( +function (error) { + const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable(); + if (stackTraceLimitIsWritable) { + userStackTraceLimit = Error.stackTraceLimit; + Error.stackTraceLimit = Number.POSITIVE_INFINITY; + } + Error.captureStackTrace(error); + + if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit; + return error; +}); + +function getMessage(key, args, self) { + const message = messages.get(key); + if (typeof message === 'function') { + _assert()(message.length <= args.length, + `Code: ${key}; The provided arguments length (${args.length}) does not ` + `match the required ones (${message.length}).`); + return Reflect.apply(message, self, args); + } + const expectedLength = (message.match(/%[dfijoOs]/g) || []).length; + _assert()(expectedLength === args.length, `Code: ${key}; The provided arguments length (${args.length}) does not ` + `match the required ones (${expectedLength}).`); + if (args.length === 0) return message; + args.unshift(message); + return Reflect.apply(_util().format, null, args); +} + +const { + ERR_UNKNOWN_FILE_EXTENSION +} = codes; +const extensionFormatMap = { + __proto__: null, + '.cjs': 'commonjs', + '.js': 'module', + '.mjs': 'module' +}; + +function defaultGetFormat(url) { + if (url.startsWith('node:')) { + return { + format: 'builtin' + }; + } + const parsed = new (_url().URL)(url); + if (parsed.protocol === 'data:') { + const { + 1: mime + } = /^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(parsed.pathname) || [null, null]; + const format = mime === 'text/javascript' ? 'module' : null; + return { + format + }; + } + if (parsed.protocol === 'file:') { + const ext = _path().extname(parsed.pathname); + let format; + if (ext === '.js') { + format = getPackageType(parsed.href) === 'module' ? 'module' : 'commonjs'; + } else { + format = extensionFormatMap[ext]; + } + if (!format) { + throw new ERR_UNKNOWN_FILE_EXTENSION(ext, (0, _url().fileURLToPath)(url)); + } + return { + format: format || null + }; + } + return { + format: null + }; +} + +const listOfBuiltins = builtins(); +const { + ERR_INVALID_MODULE_SPECIFIER, + ERR_INVALID_PACKAGE_CONFIG, + ERR_INVALID_PACKAGE_TARGET, + ERR_MODULE_NOT_FOUND, + ERR_PACKAGE_IMPORT_NOT_DEFINED, + ERR_PACKAGE_PATH_NOT_EXPORTED, + ERR_UNSUPPORTED_DIR_IMPORT, + ERR_UNSUPPORTED_ESM_URL_SCHEME, + ERR_INVALID_ARG_VALUE +} = codes; +const own = {}.hasOwnProperty; +const DEFAULT_CONDITIONS = Object.freeze(['node', 'import']); +const DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS); +const invalidSegmentRegEx = /(^|\\|\/)(\.\.?|node_modules)(\\|\/|$)/; +const patternRegEx = /\*/g; +const encodedSepRegEx = /%2f|%2c/i; +const emittedPackageWarnings = new Set(); +const packageJsonCache = new Map(); + +function emitFolderMapDeprecation(match, pjsonUrl, isExports, base) { + const pjsonPath = (0, _url().fileURLToPath)(pjsonUrl); + if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return; + emittedPackageWarnings.add(pjsonPath + '|' + match); + process.emitWarning(`Use of deprecated folder mapping "${match}" in the ${isExports ? '"exports"' : '"imports"'} field module resolution of the package at ${pjsonPath}${base ? ` imported from ${(0, _url().fileURLToPath)(base)}` : ''}.\n` + `Update this package.json to use a subpath pattern like "${match}*".`, 'DeprecationWarning', 'DEP0148'); +} + +function emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) { + const { + format + } = defaultGetFormat(url.href); + if (format !== 'module') return; + const path = (0, _url().fileURLToPath)(url.href); + const pkgPath = (0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)); + const basePath = (0, _url().fileURLToPath)(base); + if (main) process.emitWarning(`Package ${pkgPath} has a "main" field set to ${JSON.stringify(main)}, ` + `excluding the full filename and extension to the resolved file at "${path.slice(pkgPath.length)}", imported from ${basePath}.\n Automatic extension resolution of the "main" field is` + 'deprecated for ES modules.', 'DeprecationWarning', 'DEP0151');else process.emitWarning(`No "main" or "exports" field defined in the package.json for ${pkgPath} resolving the main entry point "${path.slice(pkgPath.length)}", imported from ${basePath}.\nDefault "index" lookups for the main are deprecated for ES modules.`, 'DeprecationWarning', 'DEP0151'); +} + +function getConditionsSet(conditions) { + if (conditions !== undefined && conditions !== DEFAULT_CONDITIONS) { + if (!Array.isArray(conditions)) { + throw new ERR_INVALID_ARG_VALUE('conditions', conditions, 'expected an array'); + } + return new Set(conditions); + } + return DEFAULT_CONDITIONS_SET; +} + +function tryStatSync(path) { + try { + return (0, _fs().statSync)(path); + } catch (_unused) { + return new (_fs().Stats)(); + } +} + +function getPackageConfig(path, specifier, base) { + const existing = packageJsonCache.get(path); + if (existing !== undefined) { + return existing; + } + const source = reader.read(path).string; + if (source === undefined) { + const packageConfig = { + pjsonPath: path, + exists: false, + main: undefined, + name: undefined, + type: 'none', + exports: undefined, + imports: undefined + }; + packageJsonCache.set(path, packageConfig); + return packageConfig; + } + + let packageJson; + try { + packageJson = JSON.parse(source); + } catch (error) { + throw new ERR_INVALID_PACKAGE_CONFIG(path, (base ? `"${specifier}" from ` : '') + (0, _url().fileURLToPath)(base || specifier), error.message); + } + const { + exports, + imports, + main, + name, + type + } = packageJson; + + const packageConfig = { + pjsonPath: path, + exists: true, + main: typeof main === 'string' ? main : undefined, + name: typeof name === 'string' ? name : undefined, + type: type === 'module' || type === 'commonjs' ? type : 'none', + exports, + imports: imports && typeof imports === 'object' ? imports : undefined + }; + packageJsonCache.set(path, packageConfig); + return packageConfig; +} + +function getPackageScopeConfig(resolved) { + let packageJsonUrl = new (_url().URL)('./package.json', resolved); + while (true) { + const packageJsonPath = packageJsonUrl.pathname; + if (packageJsonPath.endsWith('node_modules/package.json')) break; + const packageConfig = getPackageConfig((0, _url().fileURLToPath)(packageJsonUrl), resolved); + if (packageConfig.exists) return packageConfig; + const lastPackageJsonUrl = packageJsonUrl; + packageJsonUrl = new (_url().URL)('../package.json', packageJsonUrl); + + if (packageJsonUrl.pathname === lastPackageJsonUrl.pathname) break; + } + const packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); + const packageConfig = { + pjsonPath: packageJsonPath, + exists: false, + main: undefined, + name: undefined, + type: 'none', + exports: undefined, + imports: undefined + }; + packageJsonCache.set(packageJsonPath, packageConfig); + return packageConfig; +} + +function fileExists(url) { + return tryStatSync((0, _url().fileURLToPath)(url)).isFile(); +} + +function legacyMainResolve(packageJsonUrl, packageConfig, base) { + let guess; + if (packageConfig.main !== undefined) { + guess = new (_url().URL)(`./${packageConfig.main}`, packageJsonUrl); + if (fileExists(guess)) return guess; + const tries = [`./${packageConfig.main}.js`, `./${packageConfig.main}.json`, `./${packageConfig.main}.node`, `./${packageConfig.main}/index.js`, `./${packageConfig.main}/index.json`, `./${packageConfig.main}/index.node`]; + let i = -1; + while (++i < tries.length) { + guess = new (_url().URL)(tries[i], packageJsonUrl); + if (fileExists(guess)) break; + guess = undefined; + } + if (guess) { + emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main); + return guess; + } + } + + const tries = ['./index.js', './index.json', './index.node']; + let i = -1; + while (++i < tries.length) { + guess = new (_url().URL)(tries[i], packageJsonUrl); + if (fileExists(guess)) break; + guess = undefined; + } + if (guess) { + emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main); + return guess; + } + + throw new ERR_MODULE_NOT_FOUND((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), (0, _url().fileURLToPath)(base)); +} + +function finalizeResolution(resolved, base) { + if (encodedSepRegEx.test(resolved.pathname)) throw new ERR_INVALID_MODULE_SPECIFIER(resolved.pathname, 'must not include encoded "/" or "\\" characters', (0, _url().fileURLToPath)(base)); + const path = (0, _url().fileURLToPath)(resolved); + const stats = tryStatSync(path.endsWith('/') ? path.slice(-1) : path); + if (stats.isDirectory()) { + const error = new ERR_UNSUPPORTED_DIR_IMPORT(path, (0, _url().fileURLToPath)(base)); + error.url = String(resolved); + throw error; + } + if (!stats.isFile()) { + throw new ERR_MODULE_NOT_FOUND(path || resolved.pathname, base && (0, _url().fileURLToPath)(base), 'module'); + } + return resolved; +} + +function throwImportNotDefined(specifier, packageJsonUrl, base) { + throw new ERR_PACKAGE_IMPORT_NOT_DEFINED(specifier, packageJsonUrl && (0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), (0, _url().fileURLToPath)(base)); +} + +function throwExportsNotFound(subpath, packageJsonUrl, base) { + throw new ERR_PACKAGE_PATH_NOT_EXPORTED((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), subpath, base && (0, _url().fileURLToPath)(base)); +} + +function throwInvalidSubpath(subpath, packageJsonUrl, internal, base) { + const reason = `request is not a valid subpath for the "${internal ? 'imports' : 'exports'}" resolution of ${(0, _url().fileURLToPath)(packageJsonUrl)}`; + throw new ERR_INVALID_MODULE_SPECIFIER(subpath, reason, base && (0, _url().fileURLToPath)(base)); +} + +function throwInvalidPackageTarget(subpath, target, packageJsonUrl, internal, base) { + target = typeof target === 'object' && target !== null ? JSON.stringify(target, null, '') : `${target}`; + throw new ERR_INVALID_PACKAGE_TARGET((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), subpath, target, internal, base && (0, _url().fileURLToPath)(base)); +} + +function resolvePackageTargetString(target, subpath, match, packageJsonUrl, base, pattern, internal, conditions) { + if (subpath !== '' && !pattern && target[target.length - 1] !== '/') throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); + if (!target.startsWith('./')) { + if (internal && !target.startsWith('../') && !target.startsWith('/')) { + let isURL = false; + try { + new (_url().URL)(target); + isURL = true; + } catch (_unused2) {} + if (!isURL) { + const exportTarget = pattern ? target.replace(patternRegEx, subpath) : target + subpath; + return packageResolve(exportTarget, packageJsonUrl, conditions); + } + } + throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); + } + if (invalidSegmentRegEx.test(target.slice(2))) throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); + const resolved = new (_url().URL)(target, packageJsonUrl); + const resolvedPath = resolved.pathname; + const packagePath = new (_url().URL)('.', packageJsonUrl).pathname; + if (!resolvedPath.startsWith(packagePath)) throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); + if (subpath === '') return resolved; + if (invalidSegmentRegEx.test(subpath)) throwInvalidSubpath(match + subpath, packageJsonUrl, internal, base); + if (pattern) return new (_url().URL)(resolved.href.replace(patternRegEx, subpath)); + return new (_url().URL)(subpath, resolved); +} + +function isArrayIndex(key) { + const keyNumber = Number(key); + if (`${keyNumber}` !== key) return false; + return keyNumber >= 0 && keyNumber < 0xffffffff; +} + +function resolvePackageTarget(packageJsonUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { + if (typeof target === 'string') { + return resolvePackageTargetString(target, subpath, packageSubpath, packageJsonUrl, base, pattern, internal, conditions); + } + if (Array.isArray(target)) { + const targetList = target; + if (targetList.length === 0) return null; + + let lastException; + let i = -1; + while (++i < targetList.length) { + const targetItem = targetList[i]; + let resolved; + try { + resolved = resolvePackageTarget(packageJsonUrl, targetItem, subpath, packageSubpath, base, pattern, internal, conditions); + } catch (error) { + lastException = error; + if (error.code === 'ERR_INVALID_PACKAGE_TARGET') continue; + throw error; + } + if (resolved === undefined) continue; + if (resolved === null) { + lastException = null; + continue; + } + return resolved; + } + if (lastException === undefined || lastException === null) { + return lastException; + } + throw lastException; + } + if (typeof target === 'object' && target !== null) { + const keys = Object.getOwnPropertyNames(target); + let i = -1; + while (++i < keys.length) { + const key = keys[i]; + if (isArrayIndex(key)) { + throw new ERR_INVALID_PACKAGE_CONFIG((0, _url().fileURLToPath)(packageJsonUrl), base, '"exports" cannot contain numeric property keys.'); + } + } + i = -1; + while (++i < keys.length) { + const key = keys[i]; + if (key === 'default' || conditions && conditions.has(key)) { + const conditionalTarget = target[key]; + const resolved = resolvePackageTarget(packageJsonUrl, conditionalTarget, subpath, packageSubpath, base, pattern, internal, conditions); + if (resolved === undefined) continue; + return resolved; + } + } + return undefined; + } + if (target === null) { + return null; + } + throwInvalidPackageTarget(packageSubpath, target, packageJsonUrl, internal, base); +} + +function isConditionalExportsMainSugar(exports, packageJsonUrl, base) { + if (typeof exports === 'string' || Array.isArray(exports)) return true; + if (typeof exports !== 'object' || exports === null) return false; + const keys = Object.getOwnPropertyNames(exports); + let isConditionalSugar = false; + let i = 0; + let j = -1; + while (++j < keys.length) { + const key = keys[j]; + const curIsConditionalSugar = key === '' || key[0] !== '.'; + if (i++ === 0) { + isConditionalSugar = curIsConditionalSugar; + } else if (isConditionalSugar !== curIsConditionalSugar) { + throw new ERR_INVALID_PACKAGE_CONFIG((0, _url().fileURLToPath)(packageJsonUrl), base, '"exports" cannot contain some keys starting with \'.\' and some not.' + ' The exports object must either be an object of package subpath keys' + ' or an object of main entry condition name keys only.'); + } + } + return isConditionalSugar; +} + +function packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions) { + let exports = packageConfig.exports; + if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) exports = { + '.': exports + }; + if (own.call(exports, packageSubpath)) { + const target = exports[packageSubpath]; + const resolved = resolvePackageTarget(packageJsonUrl, target, '', packageSubpath, base, false, false, conditions); + if (resolved === null || resolved === undefined) throwExportsNotFound(packageSubpath, packageJsonUrl, base); + return { + resolved, + exact: true + }; + } + let bestMatch = ''; + const keys = Object.getOwnPropertyNames(exports); + let i = -1; + while (++i < keys.length) { + const key = keys[i]; + if (key[key.length - 1] === '*' && packageSubpath.startsWith(key.slice(0, -1)) && packageSubpath.length >= key.length && key.length > bestMatch.length) { + bestMatch = key; + } else if (key[key.length - 1] === '/' && packageSubpath.startsWith(key) && key.length > bestMatch.length) { + bestMatch = key; + } + } + if (bestMatch) { + const target = exports[bestMatch]; + const pattern = bestMatch[bestMatch.length - 1] === '*'; + const subpath = packageSubpath.slice(bestMatch.length - (pattern ? 1 : 0)); + const resolved = resolvePackageTarget(packageJsonUrl, target, subpath, bestMatch, base, pattern, false, conditions); + if (resolved === null || resolved === undefined) throwExportsNotFound(packageSubpath, packageJsonUrl, base); + if (!pattern) emitFolderMapDeprecation(bestMatch, packageJsonUrl, true, base); + return { + resolved, + exact: pattern + }; + } + throwExportsNotFound(packageSubpath, packageJsonUrl, base); +} + +function packageImportsResolve(name, base, conditions) { + if (name === '#' || name.startsWith('#/')) { + const reason = 'is not a valid internal imports specifier name'; + throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, (0, _url().fileURLToPath)(base)); + } + + let packageJsonUrl; + const packageConfig = getPackageScopeConfig(base); + if (packageConfig.exists) { + packageJsonUrl = (0, _url().pathToFileURL)(packageConfig.pjsonPath); + const imports = packageConfig.imports; + if (imports) { + if (own.call(imports, name)) { + const resolved = resolvePackageTarget(packageJsonUrl, imports[name], '', name, base, false, true, conditions); + if (resolved !== null) return { + resolved, + exact: true + }; + } else { + let bestMatch = ''; + const keys = Object.getOwnPropertyNames(imports); + let i = -1; + while (++i < keys.length) { + const key = keys[i]; + if (key[key.length - 1] === '*' && name.startsWith(key.slice(0, -1)) && name.length >= key.length && key.length > bestMatch.length) { + bestMatch = key; + } else if (key[key.length - 1] === '/' && name.startsWith(key) && key.length > bestMatch.length) { + bestMatch = key; + } + } + if (bestMatch) { + const target = imports[bestMatch]; + const pattern = bestMatch[bestMatch.length - 1] === '*'; + const subpath = name.slice(bestMatch.length - (pattern ? 1 : 0)); + const resolved = resolvePackageTarget(packageJsonUrl, target, subpath, bestMatch, base, pattern, true, conditions); + if (resolved !== null) { + if (!pattern) emitFolderMapDeprecation(bestMatch, packageJsonUrl, false, base); + return { + resolved, + exact: pattern + }; + } + } + } + } + } + throwImportNotDefined(name, packageJsonUrl, base); +} + +function getPackageType(url) { + const packageConfig = getPackageScopeConfig(url); + return packageConfig.type; +} + +function parsePackageName(specifier, base) { + let separatorIndex = specifier.indexOf('/'); + let validPackageName = true; + let isScoped = false; + if (specifier[0] === '@') { + isScoped = true; + if (separatorIndex === -1 || specifier.length === 0) { + validPackageName = false; + } else { + separatorIndex = specifier.indexOf('/', separatorIndex + 1); + } + } + const packageName = separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex); + + let i = -1; + while (++i < packageName.length) { + if (packageName[i] === '%' || packageName[i] === '\\') { + validPackageName = false; + break; + } + } + if (!validPackageName) { + throw new ERR_INVALID_MODULE_SPECIFIER(specifier, 'is not a valid package name', (0, _url().fileURLToPath)(base)); + } + const packageSubpath = '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex)); + return { + packageName, + packageSubpath, + isScoped + }; +} + +function packageResolve(specifier, base, conditions) { + const { + packageName, + packageSubpath, + isScoped + } = parsePackageName(specifier, base); + + const packageConfig = getPackageScopeConfig(base); + + if (packageConfig.exists) { + const packageJsonUrl = (0, _url().pathToFileURL)(packageConfig.pjsonPath); + if (packageConfig.name === packageName && packageConfig.exports !== undefined && packageConfig.exports !== null) { + return packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions).resolved; + } + } + let packageJsonUrl = new (_url().URL)('./node_modules/' + packageName + '/package.json', base); + let packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); + let lastPath; + do { + const stat = tryStatSync(packageJsonPath.slice(0, -13)); + if (!stat.isDirectory()) { + lastPath = packageJsonPath; + packageJsonUrl = new (_url().URL)((isScoped ? '../../../../node_modules/' : '../../../node_modules/') + packageName + '/package.json', packageJsonUrl); + packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); + continue; + } + + const packageConfig = getPackageConfig(packageJsonPath, specifier, base); + if (packageConfig.exports !== undefined && packageConfig.exports !== null) return packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions).resolved; + if (packageSubpath === '.') return legacyMainResolve(packageJsonUrl, packageConfig, base); + return new (_url().URL)(packageSubpath, packageJsonUrl); + } while (packageJsonPath.length !== lastPath.length); + throw new ERR_MODULE_NOT_FOUND(packageName, (0, _url().fileURLToPath)(base)); +} + +function isRelativeSpecifier(specifier) { + if (specifier[0] === '.') { + if (specifier.length === 1 || specifier[1] === '/') return true; + if (specifier[1] === '.' && (specifier.length === 2 || specifier[2] === '/')) { + return true; + } + } + return false; +} + +function shouldBeTreatedAsRelativeOrAbsolutePath(specifier) { + if (specifier === '') return false; + if (specifier[0] === '/') return true; + return isRelativeSpecifier(specifier); +} + +function moduleResolve(specifier, base, conditions) { + let resolved; + if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) { + resolved = new (_url().URL)(specifier, base); + } else if (specifier[0] === '#') { + ({ + resolved + } = packageImportsResolve(specifier, base, conditions)); + } else { + try { + resolved = new (_url().URL)(specifier); + } catch (_unused3) { + resolved = packageResolve(specifier, base, conditions); + } + } + return finalizeResolution(resolved, base); +} + +function defaultResolve(specifier, context = {}) { + const { + parentURL + } = context; + let parsed; + try { + parsed = new (_url().URL)(specifier); + if (parsed.protocol === 'data:') { + return { + url: specifier + }; + } + } catch (_unused4) {} + if (parsed && parsed.protocol === 'node:') return { + url: specifier + }; + if (parsed && parsed.protocol !== 'file:' && parsed.protocol !== 'data:') throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed); + if (listOfBuiltins.includes(specifier)) { + return { + url: 'node:' + specifier + }; + } + if (parentURL.startsWith('data:')) { + new (_url().URL)(specifier, parentURL); + } + const conditions = getConditionsSet(context.conditions); + let url = moduleResolve(specifier, new (_url().URL)(parentURL), conditions); + const urlPath = (0, _url().fileURLToPath)(url); + const real = (0, _fs().realpathSync)(urlPath); + const old = url; + url = (0, _url().pathToFileURL)(real + (urlPath.endsWith(_path().sep) ? '/' : '')); + url.search = old.search; + url.hash = old.hash; + return { + url: `${url}` + }; +} + +function resolve(_x, _x2) { + return _resolve.apply(this, arguments); +} +function _resolve() { + _resolve = _asyncToGenerator(function* (specifier, parent) { + if (!parent) { + throw new Error('Please pass `parent`: `import-meta-resolve` cannot ponyfill that'); + } + try { + return defaultResolve(specifier, { + parentURL: parent + }).url; + } catch (error) { + return error.code === 'ERR_UNSUPPORTED_DIR_IMPORT' ? error.url : Promise.reject(error); + } + }); + return _resolve.apply(this, arguments); +} +0 && 0; + +//# sourceMappingURL=import-meta-resolve.js.map diff --git a/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map b/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map new file mode 100755 index 0000000..bfb7c56 --- /dev/null +++ b/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map @@ -0,0 +1 @@ +{"version":3,"names":["re$3","exports","SEMVER_SPEC_VERSION","MAX_LENGTH$2","MAX_SAFE_INTEGER$1","Number","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","constants","MAX_LENGTH","debug$1","process","env","NODE_DEBUG","test","args","console","error","debug_1","module","debug","re","src","t","R","createToken","name","value","isGlobal","index","RegExp","undefined","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCE","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","opts","parseOptions$2","options","loose","filter","k","reduce","o","parseOptions_1","numeric","compareIdentifiers$1","a","b","anum","bnum","rcompareIdentifiers","identifiers","compareIdentifiers","MAX_LENGTH$1","re$2","t$2","parseOptions$1","SemVer$c","constructor","version","includePrerelease","TypeError","length","m","trim","match","LOOSE","FULL","raw","major","minor","patch","prerelease","split","map","id","num","build","format","join","toString","compare","other","compareMain","comparePre","i","compareBuild","inc","release","identifier","push","isNaN","Error","semver$2","re$1","t$1","SemVer$b","parseOptions","parse$5","r","er","parse_1","parse$4","valid$1","v","valid_1","parse$3","clean","s","replace","clean_1","SemVer$a","inc_1","SemVer$9","compare$a","compare_1","compare$9","eq$2","eq_1","parse$2","eq$1","diff","version1","version2","v1","v2","hasPre","prefix","defaultResult","key","diff_1","SemVer$8","major_1","SemVer$7","minor_1","SemVer$6","patch_1","parse$1","parsed","prerelease_1","compare$8","rcompare","rcompare_1","compare$7","compareLoose","compareLoose_1","SemVer$5","compareBuild$2","versionA","versionB","compareBuild_1","compareBuild$1","sort","list","sort_1","rsort","rsort_1","compare$6","gt$3","gt_1","compare$5","lt$2","lt_1","compare$4","neq$1","neq_1","compare$3","gte$2","gte_1","compare$2","lte$2","lte_1","eq","neq","gt$2","gte$1","lt$1","lte$1","cmp","op","cmp_1","SemVer$4","parse","coerce","String","rtl","next","COERCERTL","exec","lastIndex","coerce_1","iterator","hasRequiredIterator","requireIterator","Yallist","prototype","Symbol","walker","head","yallist","hasRequiredYallist","requireYallist","Node","create","self","tail","forEach","item","arguments","l","removeNode","node","prev","unshiftNode","pushNode","unshift","pop","res","shift","fn","thisp","call","forEachReverse","get","n","getReverse","mapReverse","initial","acc","reduceReverse","toArray","arr","Array","toArrayReverse","slice","from","to","ret","sliceReverse","splice","start","deleteCount","nodes","insert","reverse","p","inserted","lruCache","hasRequiredLruCache","requireLruCache","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","LRUCache","max","Infinity","lc","stale","maxAge","dispose","noDisposeOnSet","updateAgeOnGet","reset","mL","allowStale","mA","lengthCalculator","lC","hit","itemCount","rforEach","forEachStep","keys","values","Map","dump","isStale","e","now","h","dumpLru","set","Date","len","has","del","Entry","peek","load","expiresAt","prune","doUse","delete","range","hasRequiredRange","requireRange","Range","Comparator","parseRange","c","first","isNullSet","isAny","comps","memoOpts","Object","memoKey","cached","cache","hr","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","TILDETRIM","CARETTRIM","rangeList","comp","parseComparator","replaceGTE0","COMPARATORLOOSE","rangeMap","comparators","size","result","intersects","some","thisComparators","isSatisfiable","rangeComparators","every","thisComparator","rangeComparator","SemVer","testSet","LRU","requireComparator","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","toLowerCase","replaceTilde","TILDELOOSE","TILDE","_","M","pr","replaceCaret","CARETLOOSE","CARET","z","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","fM","fm","fp","fpr","fb","tM","tm","tp","tpr","tb","semver","ANY","allowed","comparator","hasRequiredComparator","operator","COMPARATOR","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","Range$8","satisfies$3","satisfies_1","Range$7","toComparators","toComparators_1","SemVer$3","Range$6","maxSatisfying","versions","maxSV","rangeObj","maxSatisfying_1","SemVer$2","Range$5","minSatisfying","min","minSV","minSatisfying_1","SemVer$1","Range$4","gt$1","minVersion","minver","setMin","compver","minVersion_1","Range$3","validRange","valid","Comparator$1","ANY$1","Range$2","satisfies$2","gt","lt","lte","gte","outside$2","hilo","gtfn","ltefn","ltfn","ecomp","high","low","outside_1","outside$1","gtr","gtr_1","outside","ltr","ltr_1","Range$1","r1","r2","intersects_1","satisfies$1","compare$1","simplify","included","ranges","simplified","original","satisfies","subset","sub","dom","sawNonNull","OUTER","simpleSub","simpleDom","isSub","simpleSubset","eqSet","Set","higherGT","lowerLT","add","gtltComp","higher","lower","hasDomLT","hasDomGT","needDomLTPre","needDomGTPre","subset_1","internalRe","semver$1","tokens","simplifyRange","builtins","experimental","coreModules","reader","read","jsonPath","find","path","dirname","dir","string","fs","readFileSync","toNamespacedPath","code","parent","isWindows","platform","own$1","hasOwnProperty","codes","messages","nodeInternalPrefix","userStackTraceLimit","ERR_INVALID_MODULE_SPECIFIER","createError","request","reason","base","ERR_INVALID_PACKAGE_CONFIG","message","ERR_INVALID_PACKAGE_TARGET","pkgPath","target","isImport","relError","startsWith","assert","JSON","stringify","ERR_MODULE_NOT_FOUND","type","ERR_PACKAGE_IMPORT_NOT_DEFINED","specifier","packagePath","ERR_PACKAGE_PATH_NOT_EXPORTED","subpath","ERR_UNSUPPORTED_DIR_IMPORT","ERR_UNKNOWN_FILE_EXTENSION","ERR_INVALID_ARG_VALUE","inspected","inspect","includes","ERR_UNSUPPORTED_ESM_URL_SCHEME","url","protocol","sym","def","makeNodeErrorWithCode","Base","NodeError","limit","stackTraceLimit","isErrorStackTraceLimitWritable","getMessage","defineProperty","enumerable","writable","configurable","addCodeToName","hideStackFrames","captureLargerStackTrace","stack","desc","getOwnPropertyDescriptor","isExtensible","hidden","stackTraceLimitIsWritable","POSITIVE_INFINITY","captureStackTrace","Reflect","apply","expectedLength","extensionFormatMap","__proto__","defaultGetFormat","URL","mime","pathname","ext","extname","getPackageType","href","fileURLToPath","listOfBuiltins","own","DEFAULT_CONDITIONS","freeze","DEFAULT_CONDITIONS_SET","invalidSegmentRegEx","patternRegEx","encodedSepRegEx","emittedPackageWarnings","packageJsonCache","emitFolderMapDeprecation","pjsonUrl","isExports","pjsonPath","emitWarning","emitLegacyIndexDeprecation","packageJsonUrl","main","basePath","getConditionsSet","conditions","isArray","tryStatSync","statSync","Stats","getPackageConfig","existing","source","packageConfig","exists","imports","packageJson","getPackageScopeConfig","resolved","packageJsonPath","endsWith","lastPackageJsonUrl","fileExists","isFile","legacyMainResolve","guess","tries","finalizeResolution","stats","isDirectory","throwImportNotDefined","throwExportsNotFound","throwInvalidSubpath","internal","throwInvalidPackageTarget","resolvePackageTargetString","pattern","isURL","exportTarget","packageResolve","resolvedPath","isArrayIndex","keyNumber","resolvePackageTarget","packageSubpath","targetList","lastException","targetItem","getOwnPropertyNames","conditionalTarget","isConditionalExportsMainSugar","isConditionalSugar","j","curIsConditionalSugar","packageExportsResolve","exact","bestMatch","packageImportsResolve","pathToFileURL","parsePackageName","separatorIndex","indexOf","validPackageName","isScoped","packageName","lastPath","stat","isRelativeSpecifier","shouldBeTreatedAsRelativeOrAbsolutePath","moduleResolve","defaultResolve","context","parentURL","urlPath","real","realpathSync","old","sep","search","hash","resolve","Promise","reject"],"sources":["../../src/vendor/import-meta-resolve.js"],"sourcesContent":["\n/****************************************************************************\\\n * NOTE FROM BABEL AUTHORS *\n * This file is inlined from https://github.com/wooorm/import-meta-resolve, *\n * because we need to compile it to CommonJS. *\n\\****************************************************************************/\n\n/*\n(The MIT License)\n\nCopyright (c) 2021 Titus Wormer \n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n---\n\nThis is a derivative work based on:\n.\nWhich is licensed:\n\n\"\"\"\nCopyright Node.js contributors. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n\nThis license applies to parts of Node.js originating from the\nhttps://github.com/joyent/node repository:\n\n\"\"\"\nCopyright Joyent, Inc. and other Node contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n*/\n\nimport { URL, fileURLToPath, pathToFileURL } from 'url';\nimport fs, { realpathSync, statSync, Stats } from 'fs';\nimport path from 'path';\nimport assert from 'assert';\nimport { format, inspect } from 'util';\n\nvar re$3 = {exports: {}};\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0';\n\nconst MAX_LENGTH$2 = 256;\nconst MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991;\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16;\n\nvar constants = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH: MAX_LENGTH$2,\n MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1,\n MAX_SAFE_COMPONENT_LENGTH,\n};\n\nconst debug$1 = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {};\n\nvar debug_1 = debug$1;\n\n(function (module, exports) {\n\tconst { MAX_SAFE_COMPONENT_LENGTH } = constants;\n\tconst debug = debug_1;\n\texports = module.exports = {};\n\n\t// The actual regexps go on exports.re\n\tconst re = exports.re = [];\n\tconst src = exports.src = [];\n\tconst t = exports.t = {};\n\tlet R = 0;\n\n\tconst createToken = (name, value, isGlobal) => {\n\t const index = R++;\n\t debug(name, index, value);\n\t t[name] = index;\n\t src[index] = value;\n\t re[index] = new RegExp(value, isGlobal ? 'g' : undefined);\n\t};\n\n\t// The following Regular Expressions can be used for tokenizing,\n\t// validating, and parsing SemVer version strings.\n\n\t// ## Numeric Identifier\n\t// A single `0`, or a non-zero digit followed by zero or more digits.\n\n\tcreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*');\n\tcreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+');\n\n\t// ## Non-numeric Identifier\n\t// Zero or more digits, followed by a letter or hyphen, and then zero or\n\t// more letters, digits, or hyphens.\n\n\tcreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*');\n\n\t// ## Main Version\n\t// Three dot-separated numeric identifiers.\n\n\tcreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n\t `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n\t `(${src[t.NUMERICIDENTIFIER]})`);\n\n\tcreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n\t `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n\t `(${src[t.NUMERICIDENTIFIERLOOSE]})`);\n\n\t// ## Pre-release Version Identifier\n\t// A numeric identifier, or a non-numeric identifier.\n\n\tcreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n\t}|${src[t.NONNUMERICIDENTIFIER]})`);\n\n\tcreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n\t}|${src[t.NONNUMERICIDENTIFIER]})`);\n\n\t// ## Pre-release Version\n\t// Hyphen, followed by one or more dot-separated pre-release version\n\t// identifiers.\n\n\tcreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n\t}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`);\n\n\tcreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n\t}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);\n\n\t// ## Build Metadata Identifier\n\t// Any combination of digits, letters, or hyphens.\n\n\tcreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+');\n\n\t// ## Build Metadata\n\t// Plus sign, followed by one or more period-separated build metadata\n\t// identifiers.\n\n\tcreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n\t}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`);\n\n\t// ## Full Version String\n\t// A main version, followed optionally by a pre-release version and\n\t// build metadata.\n\n\t// Note that the only major, minor, patch, and pre-release sections of\n\t// the version string are capturing groups. The build metadata is not a\n\t// capturing group, because it should not ever be used in version\n\t// comparison.\n\n\tcreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n\t}${src[t.PRERELEASE]}?${\n\t src[t.BUILD]}?`);\n\n\tcreateToken('FULL', `^${src[t.FULLPLAIN]}$`);\n\n\t// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n\t// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n\t// common in the npm registry.\n\tcreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n\t}${src[t.PRERELEASELOOSE]}?${\n\t src[t.BUILD]}?`);\n\n\tcreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`);\n\n\tcreateToken('GTLT', '((?:<|>)?=?)');\n\n\t// Something like \"2.*\" or \"1.2.x\".\n\t// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n\t// Only the first item is strictly required.\n\tcreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n\tcreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n\n\tcreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n\t `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n\t `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n\t `(?:${src[t.PRERELEASE]})?${\n\t src[t.BUILD]}?` +\n\t `)?)?`);\n\n\tcreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n\t `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n\t `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n\t `(?:${src[t.PRERELEASELOOSE]})?${\n\t src[t.BUILD]}?` +\n\t `)?)?`);\n\n\tcreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`);\n\tcreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`);\n\n\t// Coercion.\n\t// Extract anything that could conceivably be a part of a valid semver\n\tcreateToken('COERCE', `${'(^|[^\\\\d])' +\n\t '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n\t `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n\t `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n\t `(?:$|[^\\\\d])`);\n\tcreateToken('COERCERTL', src[t.COERCE], true);\n\n\t// Tilde ranges.\n\t// Meaning is \"reasonably at or greater than\"\n\tcreateToken('LONETILDE', '(?:~>?)');\n\n\tcreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true);\n\texports.tildeTrimReplace = '$1~';\n\n\tcreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);\n\tcreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);\n\n\t// Caret ranges.\n\t// Meaning is \"at least and backwards compatible with\"\n\tcreateToken('LONECARET', '(?:\\\\^)');\n\n\tcreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true);\n\texports.caretTrimReplace = '$1^';\n\n\tcreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);\n\tcreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);\n\n\t// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\n\tcreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`);\n\tcreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`);\n\n\t// An expression to strip any whitespace between the gtlt and the thing\n\t// it modifies, so that `> 1.2.3` ==> `>1.2.3`\n\tcreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n\t}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);\n\texports.comparatorTrimReplace = '$1$2$3';\n\n\t// Something like `1.2.3 - 1.2.4`\n\t// Note that these all use the loose form, because they'll be\n\t// checked against either the strict or loose comparator form\n\t// later.\n\tcreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n\t `\\\\s+-\\\\s+` +\n\t `(${src[t.XRANGEPLAIN]})` +\n\t `\\\\s*$`);\n\n\tcreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n\t `\\\\s+-\\\\s+` +\n\t `(${src[t.XRANGEPLAINLOOSE]})` +\n\t `\\\\s*$`);\n\n\t// Star ranges basically just allow anything at all.\n\tcreateToken('STAR', '(<|>)?=?\\\\s*\\\\*');\n\t// >=0.0.0 is like a star\n\tcreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$');\n\tcreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$');\n} (re$3, re$3.exports));\n\n// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl'];\nconst parseOptions$2 = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((o, k) => {\n o[k] = true;\n return o\n }, {});\nvar parseOptions_1 = parseOptions$2;\n\nconst numeric = /^[0-9]+$/;\nconst compareIdentifiers$1 = (a, b) => {\n const anum = numeric.test(a);\n const bnum = numeric.test(b);\n\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n};\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a);\n\nvar identifiers = {\n compareIdentifiers: compareIdentifiers$1,\n rcompareIdentifiers,\n};\n\nconst debug = debug_1;\nconst { MAX_LENGTH: MAX_LENGTH$1, MAX_SAFE_INTEGER } = constants;\nconst { re: re$2, t: t$2 } = re$3.exports;\n\nconst parseOptions$1 = parseOptions_1;\nconst { compareIdentifiers } = identifiers;\nclass SemVer$c {\n constructor (version, options) {\n options = parseOptions$1(options);\n\n if (version instanceof SemVer$c) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version;\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH$1) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH$1} characters`\n )\n }\n\n debug('SemVer', version, options);\n this.options = options;\n this.loose = !!options.loose;\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease;\n\n const m = version.trim().match(options.loose ? re$2[t$2.LOOSE] : re$2[t$2.FULL]);\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version;\n\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n });\n }\n\n this.build = m[5] ? m[5].split('.') : [];\n this.format();\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`;\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other);\n if (!(other instanceof SemVer$c)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer$c(other, this.options);\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer$c)) {\n other = new SemVer$c(other, this.options);\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer$c)) {\n other = new SemVer$c(other, this.options);\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0;\n do {\n const a = this.prerelease[i];\n const b = other.prerelease[i];\n debug('prerelease compare', i, a, b);\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer$c)) {\n other = new SemVer$c(other, this.options);\n }\n\n let i = 0;\n do {\n const a = this.build[i];\n const b = other.build[i];\n debug('prerelease compare', i, a, b);\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc('pre', identifier);\n break\n case 'preminor':\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc('pre', identifier);\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc('patch', identifier);\n this.inc('pre', identifier);\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier);\n }\n this.inc('pre', identifier);\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0];\n } else {\n let i = this.prerelease.length;\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++;\n i = -2;\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0);\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0];\n }\n } else {\n this.prerelease = [identifier, 0];\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format();\n this.raw = this.version;\n return this\n }\n}\n\nvar semver$2 = SemVer$c;\n\nconst { MAX_LENGTH } = constants;\nconst { re: re$1, t: t$1 } = re$3.exports;\nconst SemVer$b = semver$2;\n\nconst parseOptions = parseOptions_1;\nconst parse$5 = (version, options) => {\n options = parseOptions(options);\n\n if (version instanceof SemVer$b) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re$1[t$1.LOOSE] : re$1[t$1.FULL];\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer$b(version, options)\n } catch (er) {\n return null\n }\n};\n\nvar parse_1 = parse$5;\n\nconst parse$4 = parse_1;\nconst valid$1 = (version, options) => {\n const v = parse$4(version, options);\n return v ? v.version : null\n};\nvar valid_1 = valid$1;\n\nconst parse$3 = parse_1;\nconst clean = (version, options) => {\n const s = parse$3(version.trim().replace(/^[=v]+/, ''), options);\n return s ? s.version : null\n};\nvar clean_1 = clean;\n\nconst SemVer$a = semver$2;\n\nconst inc = (version, release, options, identifier) => {\n if (typeof (options) === 'string') {\n identifier = options;\n options = undefined;\n }\n\n try {\n return new SemVer$a(\n version instanceof SemVer$a ? version.version : version,\n options\n ).inc(release, identifier).version\n } catch (er) {\n return null\n }\n};\nvar inc_1 = inc;\n\nconst SemVer$9 = semver$2;\nconst compare$a = (a, b, loose) =>\n new SemVer$9(a, loose).compare(new SemVer$9(b, loose));\n\nvar compare_1 = compare$a;\n\nconst compare$9 = compare_1;\nconst eq$2 = (a, b, loose) => compare$9(a, b, loose) === 0;\nvar eq_1 = eq$2;\n\nconst parse$2 = parse_1;\nconst eq$1 = eq_1;\n\nconst diff = (version1, version2) => {\n if (eq$1(version1, version2)) {\n return null\n } else {\n const v1 = parse$2(version1);\n const v2 = parse$2(version2);\n const hasPre = v1.prerelease.length || v2.prerelease.length;\n const prefix = hasPre ? 'pre' : '';\n const defaultResult = hasPre ? 'prerelease' : '';\n for (const key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n};\nvar diff_1 = diff;\n\nconst SemVer$8 = semver$2;\nconst major = (a, loose) => new SemVer$8(a, loose).major;\nvar major_1 = major;\n\nconst SemVer$7 = semver$2;\nconst minor = (a, loose) => new SemVer$7(a, loose).minor;\nvar minor_1 = minor;\n\nconst SemVer$6 = semver$2;\nconst patch = (a, loose) => new SemVer$6(a, loose).patch;\nvar patch_1 = patch;\n\nconst parse$1 = parse_1;\nconst prerelease = (version, options) => {\n const parsed = parse$1(version, options);\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n};\nvar prerelease_1 = prerelease;\n\nconst compare$8 = compare_1;\nconst rcompare = (a, b, loose) => compare$8(b, a, loose);\nvar rcompare_1 = rcompare;\n\nconst compare$7 = compare_1;\nconst compareLoose = (a, b) => compare$7(a, b, true);\nvar compareLoose_1 = compareLoose;\n\nconst SemVer$5 = semver$2;\nconst compareBuild$2 = (a, b, loose) => {\n const versionA = new SemVer$5(a, loose);\n const versionB = new SemVer$5(b, loose);\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n};\nvar compareBuild_1 = compareBuild$2;\n\nconst compareBuild$1 = compareBuild_1;\nconst sort = (list, loose) => list.sort((a, b) => compareBuild$1(a, b, loose));\nvar sort_1 = sort;\n\nconst compareBuild = compareBuild_1;\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose));\nvar rsort_1 = rsort;\n\nconst compare$6 = compare_1;\nconst gt$3 = (a, b, loose) => compare$6(a, b, loose) > 0;\nvar gt_1 = gt$3;\n\nconst compare$5 = compare_1;\nconst lt$2 = (a, b, loose) => compare$5(a, b, loose) < 0;\nvar lt_1 = lt$2;\n\nconst compare$4 = compare_1;\nconst neq$1 = (a, b, loose) => compare$4(a, b, loose) !== 0;\nvar neq_1 = neq$1;\n\nconst compare$3 = compare_1;\nconst gte$2 = (a, b, loose) => compare$3(a, b, loose) >= 0;\nvar gte_1 = gte$2;\n\nconst compare$2 = compare_1;\nconst lte$2 = (a, b, loose) => compare$2(a, b, loose) <= 0;\nvar lte_1 = lte$2;\n\nconst eq = eq_1;\nconst neq = neq_1;\nconst gt$2 = gt_1;\nconst gte$1 = gte_1;\nconst lt$1 = lt_1;\nconst lte$1 = lte_1;\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version;\n }\n if (typeof b === 'object') {\n b = b.version;\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version;\n }\n if (typeof b === 'object') {\n b = b.version;\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt$2(a, b, loose)\n\n case '>=':\n return gte$1(a, b, loose)\n\n case '<':\n return lt$1(a, b, loose)\n\n case '<=':\n return lte$1(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n};\nvar cmp_1 = cmp;\n\nconst SemVer$4 = semver$2;\nconst parse = parse_1;\nconst { re, t } = re$3.exports;\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer$4) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version);\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {};\n\n let match = null;\n if (!options.rtl) {\n match = version.match(re[t.COERCE]);\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next;\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next;\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1;\n }\n\n if (match === null) {\n return null\n }\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n};\nvar coerce_1 = coerce;\n\nvar iterator;\nvar hasRequiredIterator;\n\nfunction requireIterator () {\n\tif (hasRequiredIterator) return iterator;\n\thasRequiredIterator = 1;\n\titerator = function (Yallist) {\n\t Yallist.prototype[Symbol.iterator] = function* () {\n\t for (let walker = this.head; walker; walker = walker.next) {\n\t yield walker.value;\n\t }\n\t };\n\t};\n\treturn iterator;\n}\n\nvar yallist;\nvar hasRequiredYallist;\n\nfunction requireYallist () {\n\tif (hasRequiredYallist) return yallist;\n\thasRequiredYallist = 1;\n\tyallist = Yallist;\n\n\tYallist.Node = Node;\n\tYallist.create = Yallist;\n\n\tfunction Yallist (list) {\n\t var self = this;\n\t if (!(self instanceof Yallist)) {\n\t self = new Yallist();\n\t }\n\n\t self.tail = null;\n\t self.head = null;\n\t self.length = 0;\n\n\t if (list && typeof list.forEach === 'function') {\n\t list.forEach(function (item) {\n\t self.push(item);\n\t });\n\t } else if (arguments.length > 0) {\n\t for (var i = 0, l = arguments.length; i < l; i++) {\n\t self.push(arguments[i]);\n\t }\n\t }\n\n\t return self\n\t}\n\n\tYallist.prototype.removeNode = function (node) {\n\t if (node.list !== this) {\n\t throw new Error('removing node which does not belong to this list')\n\t }\n\n\t var next = node.next;\n\t var prev = node.prev;\n\n\t if (next) {\n\t next.prev = prev;\n\t }\n\n\t if (prev) {\n\t prev.next = next;\n\t }\n\n\t if (node === this.head) {\n\t this.head = next;\n\t }\n\t if (node === this.tail) {\n\t this.tail = prev;\n\t }\n\n\t node.list.length--;\n\t node.next = null;\n\t node.prev = null;\n\t node.list = null;\n\n\t return next\n\t};\n\n\tYallist.prototype.unshiftNode = function (node) {\n\t if (node === this.head) {\n\t return\n\t }\n\n\t if (node.list) {\n\t node.list.removeNode(node);\n\t }\n\n\t var head = this.head;\n\t node.list = this;\n\t node.next = head;\n\t if (head) {\n\t head.prev = node;\n\t }\n\n\t this.head = node;\n\t if (!this.tail) {\n\t this.tail = node;\n\t }\n\t this.length++;\n\t};\n\n\tYallist.prototype.pushNode = function (node) {\n\t if (node === this.tail) {\n\t return\n\t }\n\n\t if (node.list) {\n\t node.list.removeNode(node);\n\t }\n\n\t var tail = this.tail;\n\t node.list = this;\n\t node.prev = tail;\n\t if (tail) {\n\t tail.next = node;\n\t }\n\n\t this.tail = node;\n\t if (!this.head) {\n\t this.head = node;\n\t }\n\t this.length++;\n\t};\n\n\tYallist.prototype.push = function () {\n\t for (var i = 0, l = arguments.length; i < l; i++) {\n\t push(this, arguments[i]);\n\t }\n\t return this.length\n\t};\n\n\tYallist.prototype.unshift = function () {\n\t for (var i = 0, l = arguments.length; i < l; i++) {\n\t unshift(this, arguments[i]);\n\t }\n\t return this.length\n\t};\n\n\tYallist.prototype.pop = function () {\n\t if (!this.tail) {\n\t return undefined\n\t }\n\n\t var res = this.tail.value;\n\t this.tail = this.tail.prev;\n\t if (this.tail) {\n\t this.tail.next = null;\n\t } else {\n\t this.head = null;\n\t }\n\t this.length--;\n\t return res\n\t};\n\n\tYallist.prototype.shift = function () {\n\t if (!this.head) {\n\t return undefined\n\t }\n\n\t var res = this.head.value;\n\t this.head = this.head.next;\n\t if (this.head) {\n\t this.head.prev = null;\n\t } else {\n\t this.tail = null;\n\t }\n\t this.length--;\n\t return res\n\t};\n\n\tYallist.prototype.forEach = function (fn, thisp) {\n\t thisp = thisp || this;\n\t for (var walker = this.head, i = 0; walker !== null; i++) {\n\t fn.call(thisp, walker.value, i, this);\n\t walker = walker.next;\n\t }\n\t};\n\n\tYallist.prototype.forEachReverse = function (fn, thisp) {\n\t thisp = thisp || this;\n\t for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n\t fn.call(thisp, walker.value, i, this);\n\t walker = walker.prev;\n\t }\n\t};\n\n\tYallist.prototype.get = function (n) {\n\t for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n\t // abort out of the list early if we hit a cycle\n\t walker = walker.next;\n\t }\n\t if (i === n && walker !== null) {\n\t return walker.value\n\t }\n\t};\n\n\tYallist.prototype.getReverse = function (n) {\n\t for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n\t // abort out of the list early if we hit a cycle\n\t walker = walker.prev;\n\t }\n\t if (i === n && walker !== null) {\n\t return walker.value\n\t }\n\t};\n\n\tYallist.prototype.map = function (fn, thisp) {\n\t thisp = thisp || this;\n\t var res = new Yallist();\n\t for (var walker = this.head; walker !== null;) {\n\t res.push(fn.call(thisp, walker.value, this));\n\t walker = walker.next;\n\t }\n\t return res\n\t};\n\n\tYallist.prototype.mapReverse = function (fn, thisp) {\n\t thisp = thisp || this;\n\t var res = new Yallist();\n\t for (var walker = this.tail; walker !== null;) {\n\t res.push(fn.call(thisp, walker.value, this));\n\t walker = walker.prev;\n\t }\n\t return res\n\t};\n\n\tYallist.prototype.reduce = function (fn, initial) {\n\t var acc;\n\t var walker = this.head;\n\t if (arguments.length > 1) {\n\t acc = initial;\n\t } else if (this.head) {\n\t walker = this.head.next;\n\t acc = this.head.value;\n\t } else {\n\t throw new TypeError('Reduce of empty list with no initial value')\n\t }\n\n\t for (var i = 0; walker !== null; i++) {\n\t acc = fn(acc, walker.value, i);\n\t walker = walker.next;\n\t }\n\n\t return acc\n\t};\n\n\tYallist.prototype.reduceReverse = function (fn, initial) {\n\t var acc;\n\t var walker = this.tail;\n\t if (arguments.length > 1) {\n\t acc = initial;\n\t } else if (this.tail) {\n\t walker = this.tail.prev;\n\t acc = this.tail.value;\n\t } else {\n\t throw new TypeError('Reduce of empty list with no initial value')\n\t }\n\n\t for (var i = this.length - 1; walker !== null; i--) {\n\t acc = fn(acc, walker.value, i);\n\t walker = walker.prev;\n\t }\n\n\t return acc\n\t};\n\n\tYallist.prototype.toArray = function () {\n\t var arr = new Array(this.length);\n\t for (var i = 0, walker = this.head; walker !== null; i++) {\n\t arr[i] = walker.value;\n\t walker = walker.next;\n\t }\n\t return arr\n\t};\n\n\tYallist.prototype.toArrayReverse = function () {\n\t var arr = new Array(this.length);\n\t for (var i = 0, walker = this.tail; walker !== null; i++) {\n\t arr[i] = walker.value;\n\t walker = walker.prev;\n\t }\n\t return arr\n\t};\n\n\tYallist.prototype.slice = function (from, to) {\n\t to = to || this.length;\n\t if (to < 0) {\n\t to += this.length;\n\t }\n\t from = from || 0;\n\t if (from < 0) {\n\t from += this.length;\n\t }\n\t var ret = new Yallist();\n\t if (to < from || to < 0) {\n\t return ret\n\t }\n\t if (from < 0) {\n\t from = 0;\n\t }\n\t if (to > this.length) {\n\t to = this.length;\n\t }\n\t for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n\t walker = walker.next;\n\t }\n\t for (; walker !== null && i < to; i++, walker = walker.next) {\n\t ret.push(walker.value);\n\t }\n\t return ret\n\t};\n\n\tYallist.prototype.sliceReverse = function (from, to) {\n\t to = to || this.length;\n\t if (to < 0) {\n\t to += this.length;\n\t }\n\t from = from || 0;\n\t if (from < 0) {\n\t from += this.length;\n\t }\n\t var ret = new Yallist();\n\t if (to < from || to < 0) {\n\t return ret\n\t }\n\t if (from < 0) {\n\t from = 0;\n\t }\n\t if (to > this.length) {\n\t to = this.length;\n\t }\n\t for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n\t walker = walker.prev;\n\t }\n\t for (; walker !== null && i > from; i--, walker = walker.prev) {\n\t ret.push(walker.value);\n\t }\n\t return ret\n\t};\n\n\tYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n\t if (start > this.length) {\n\t start = this.length - 1;\n\t }\n\t if (start < 0) {\n\t start = this.length + start;\n\t }\n\n\t for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n\t walker = walker.next;\n\t }\n\n\t var ret = [];\n\t for (var i = 0; walker && i < deleteCount; i++) {\n\t ret.push(walker.value);\n\t walker = this.removeNode(walker);\n\t }\n\t if (walker === null) {\n\t walker = this.tail;\n\t }\n\n\t if (walker !== this.head && walker !== this.tail) {\n\t walker = walker.prev;\n\t }\n\n\t for (var i = 0; i < nodes.length; i++) {\n\t walker = insert(this, walker, nodes[i]);\n\t }\n\t return ret;\n\t};\n\n\tYallist.prototype.reverse = function () {\n\t var head = this.head;\n\t var tail = this.tail;\n\t for (var walker = head; walker !== null; walker = walker.prev) {\n\t var p = walker.prev;\n\t walker.prev = walker.next;\n\t walker.next = p;\n\t }\n\t this.head = tail;\n\t this.tail = head;\n\t return this\n\t};\n\n\tfunction insert (self, node, value) {\n\t var inserted = node === self.head ?\n\t new Node(value, null, node, self) :\n\t new Node(value, node, node.next, self);\n\n\t if (inserted.next === null) {\n\t self.tail = inserted;\n\t }\n\t if (inserted.prev === null) {\n\t self.head = inserted;\n\t }\n\n\t self.length++;\n\n\t return inserted\n\t}\n\n\tfunction push (self, item) {\n\t self.tail = new Node(item, self.tail, null, self);\n\t if (!self.head) {\n\t self.head = self.tail;\n\t }\n\t self.length++;\n\t}\n\n\tfunction unshift (self, item) {\n\t self.head = new Node(item, null, self.head, self);\n\t if (!self.tail) {\n\t self.tail = self.head;\n\t }\n\t self.length++;\n\t}\n\n\tfunction Node (value, prev, next, list) {\n\t if (!(this instanceof Node)) {\n\t return new Node(value, prev, next, list)\n\t }\n\n\t this.list = list;\n\t this.value = value;\n\n\t if (prev) {\n\t prev.next = this;\n\t this.prev = prev;\n\t } else {\n\t this.prev = null;\n\t }\n\n\t if (next) {\n\t next.prev = this;\n\t this.next = next;\n\t } else {\n\t this.next = null;\n\t }\n\t}\n\n\ttry {\n\t // add if support for Symbol.iterator is present\n\t requireIterator()(Yallist);\n\t} catch (er) {}\n\treturn yallist;\n}\n\nvar lruCache;\nvar hasRequiredLruCache;\n\nfunction requireLruCache () {\n\tif (hasRequiredLruCache) return lruCache;\n\thasRequiredLruCache = 1;\n\n\t// A linked list to keep track of recently-used-ness\n\tconst Yallist = requireYallist();\n\n\tconst MAX = Symbol('max');\n\tconst LENGTH = Symbol('length');\n\tconst LENGTH_CALCULATOR = Symbol('lengthCalculator');\n\tconst ALLOW_STALE = Symbol('allowStale');\n\tconst MAX_AGE = Symbol('maxAge');\n\tconst DISPOSE = Symbol('dispose');\n\tconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet');\n\tconst LRU_LIST = Symbol('lruList');\n\tconst CACHE = Symbol('cache');\n\tconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet');\n\n\tconst naiveLength = () => 1;\n\n\t// lruList is a yallist where the head is the youngest\n\t// item, and the tail is the oldest. the list contains the Hit\n\t// objects as the entries.\n\t// Each Hit object has a reference to its Yallist.Node. This\n\t// never changes.\n\t//\n\t// cache is a Map (or PseudoMap) that matches the keys to\n\t// the Yallist.Node object.\n\tclass LRUCache {\n\t constructor (options) {\n\t if (typeof options === 'number')\n\t options = { max: options };\n\n\t if (!options)\n\t options = {};\n\n\t if (options.max && (typeof options.max !== 'number' || options.max < 0))\n\t throw new TypeError('max must be a non-negative number')\n\t // Kind of weird to have a default max of Infinity, but oh well.\n\t this[MAX] = options.max || Infinity;\n\n\t const lc = options.length || naiveLength;\n\t this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc;\n\t this[ALLOW_STALE] = options.stale || false;\n\t if (options.maxAge && typeof options.maxAge !== 'number')\n\t throw new TypeError('maxAge must be a number')\n\t this[MAX_AGE] = options.maxAge || 0;\n\t this[DISPOSE] = options.dispose;\n\t this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;\n\t this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;\n\t this.reset();\n\t }\n\n\t // resize the cache when the max changes.\n\t set max (mL) {\n\t if (typeof mL !== 'number' || mL < 0)\n\t throw new TypeError('max must be a non-negative number')\n\n\t this[MAX] = mL || Infinity;\n\t trim(this);\n\t }\n\t get max () {\n\t return this[MAX]\n\t }\n\n\t set allowStale (allowStale) {\n\t this[ALLOW_STALE] = !!allowStale;\n\t }\n\t get allowStale () {\n\t return this[ALLOW_STALE]\n\t }\n\n\t set maxAge (mA) {\n\t if (typeof mA !== 'number')\n\t throw new TypeError('maxAge must be a non-negative number')\n\n\t this[MAX_AGE] = mA;\n\t trim(this);\n\t }\n\t get maxAge () {\n\t return this[MAX_AGE]\n\t }\n\n\t // resize the cache when the lengthCalculator changes.\n\t set lengthCalculator (lC) {\n\t if (typeof lC !== 'function')\n\t lC = naiveLength;\n\n\t if (lC !== this[LENGTH_CALCULATOR]) {\n\t this[LENGTH_CALCULATOR] = lC;\n\t this[LENGTH] = 0;\n\t this[LRU_LIST].forEach(hit => {\n\t hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key);\n\t this[LENGTH] += hit.length;\n\t });\n\t }\n\t trim(this);\n\t }\n\t get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n\t get length () { return this[LENGTH] }\n\t get itemCount () { return this[LRU_LIST].length }\n\n\t rforEach (fn, thisp) {\n\t thisp = thisp || this;\n\t for (let walker = this[LRU_LIST].tail; walker !== null;) {\n\t const prev = walker.prev;\n\t forEachStep(this, fn, walker, thisp);\n\t walker = prev;\n\t }\n\t }\n\n\t forEach (fn, thisp) {\n\t thisp = thisp || this;\n\t for (let walker = this[LRU_LIST].head; walker !== null;) {\n\t const next = walker.next;\n\t forEachStep(this, fn, walker, thisp);\n\t walker = next;\n\t }\n\t }\n\n\t keys () {\n\t return this[LRU_LIST].toArray().map(k => k.key)\n\t }\n\n\t values () {\n\t return this[LRU_LIST].toArray().map(k => k.value)\n\t }\n\n\t reset () {\n\t if (this[DISPOSE] &&\n\t this[LRU_LIST] &&\n\t this[LRU_LIST].length) {\n\t this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value));\n\t }\n\n\t this[CACHE] = new Map(); // hash of items by key\n\t this[LRU_LIST] = new Yallist(); // list of items in order of use recency\n\t this[LENGTH] = 0; // length of items in the list\n\t }\n\n\t dump () {\n\t return this[LRU_LIST].map(hit =>\n\t isStale(this, hit) ? false : {\n\t k: hit.key,\n\t v: hit.value,\n\t e: hit.now + (hit.maxAge || 0)\n\t }).toArray().filter(h => h)\n\t }\n\n\t dumpLru () {\n\t return this[LRU_LIST]\n\t }\n\n\t set (key, value, maxAge) {\n\t maxAge = maxAge || this[MAX_AGE];\n\n\t if (maxAge && typeof maxAge !== 'number')\n\t throw new TypeError('maxAge must be a number')\n\n\t const now = maxAge ? Date.now() : 0;\n\t const len = this[LENGTH_CALCULATOR](value, key);\n\n\t if (this[CACHE].has(key)) {\n\t if (len > this[MAX]) {\n\t del(this, this[CACHE].get(key));\n\t return false\n\t }\n\n\t const node = this[CACHE].get(key);\n\t const item = node.value;\n\n\t // dispose of the old one before overwriting\n\t // split out into 2 ifs for better coverage tracking\n\t if (this[DISPOSE]) {\n\t if (!this[NO_DISPOSE_ON_SET])\n\t this[DISPOSE](key, item.value);\n\t }\n\n\t item.now = now;\n\t item.maxAge = maxAge;\n\t item.value = value;\n\t this[LENGTH] += len - item.length;\n\t item.length = len;\n\t this.get(key);\n\t trim(this);\n\t return true\n\t }\n\n\t const hit = new Entry(key, value, len, now, maxAge);\n\n\t // oversized objects fall out of cache automatically.\n\t if (hit.length > this[MAX]) {\n\t if (this[DISPOSE])\n\t this[DISPOSE](key, value);\n\n\t return false\n\t }\n\n\t this[LENGTH] += hit.length;\n\t this[LRU_LIST].unshift(hit);\n\t this[CACHE].set(key, this[LRU_LIST].head);\n\t trim(this);\n\t return true\n\t }\n\n\t has (key) {\n\t if (!this[CACHE].has(key)) return false\n\t const hit = this[CACHE].get(key).value;\n\t return !isStale(this, hit)\n\t }\n\n\t get (key) {\n\t return get(this, key, true)\n\t }\n\n\t peek (key) {\n\t return get(this, key, false)\n\t }\n\n\t pop () {\n\t const node = this[LRU_LIST].tail;\n\t if (!node)\n\t return null\n\n\t del(this, node);\n\t return node.value\n\t }\n\n\t del (key) {\n\t del(this, this[CACHE].get(key));\n\t }\n\n\t load (arr) {\n\t // reset the cache\n\t this.reset();\n\n\t const now = Date.now();\n\t // A previous serialized cache has the most recent items first\n\t for (let l = arr.length - 1; l >= 0; l--) {\n\t const hit = arr[l];\n\t const expiresAt = hit.e || 0;\n\t if (expiresAt === 0)\n\t // the item was created without expiration in a non aged cache\n\t this.set(hit.k, hit.v);\n\t else {\n\t const maxAge = expiresAt - now;\n\t // dont add already expired items\n\t if (maxAge > 0) {\n\t this.set(hit.k, hit.v, maxAge);\n\t }\n\t }\n\t }\n\t }\n\n\t prune () {\n\t this[CACHE].forEach((value, key) => get(this, key, false));\n\t }\n\t}\n\n\tconst get = (self, key, doUse) => {\n\t const node = self[CACHE].get(key);\n\t if (node) {\n\t const hit = node.value;\n\t if (isStale(self, hit)) {\n\t del(self, node);\n\t if (!self[ALLOW_STALE])\n\t return undefined\n\t } else {\n\t if (doUse) {\n\t if (self[UPDATE_AGE_ON_GET])\n\t node.value.now = Date.now();\n\t self[LRU_LIST].unshiftNode(node);\n\t }\n\t }\n\t return hit.value\n\t }\n\t};\n\n\tconst isStale = (self, hit) => {\n\t if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n\t return false\n\n\t const diff = Date.now() - hit.now;\n\t return hit.maxAge ? diff > hit.maxAge\n\t : self[MAX_AGE] && (diff > self[MAX_AGE])\n\t};\n\n\tconst trim = self => {\n\t if (self[LENGTH] > self[MAX]) {\n\t for (let walker = self[LRU_LIST].tail;\n\t self[LENGTH] > self[MAX] && walker !== null;) {\n\t // We know that we're about to delete this one, and also\n\t // what the next least recently used key will be, so just\n\t // go ahead and set it now.\n\t const prev = walker.prev;\n\t del(self, walker);\n\t walker = prev;\n\t }\n\t }\n\t};\n\n\tconst del = (self, node) => {\n\t if (node) {\n\t const hit = node.value;\n\t if (self[DISPOSE])\n\t self[DISPOSE](hit.key, hit.value);\n\n\t self[LENGTH] -= hit.length;\n\t self[CACHE].delete(hit.key);\n\t self[LRU_LIST].removeNode(node);\n\t }\n\t};\n\n\tclass Entry {\n\t constructor (key, value, length, now, maxAge) {\n\t this.key = key;\n\t this.value = value;\n\t this.length = length;\n\t this.now = now;\n\t this.maxAge = maxAge || 0;\n\t }\n\t}\n\n\tconst forEachStep = (self, fn, node, thisp) => {\n\t let hit = node.value;\n\t if (isStale(self, hit)) {\n\t del(self, node);\n\t if (!self[ALLOW_STALE])\n\t hit = undefined;\n\t }\n\t if (hit)\n\t fn.call(thisp, hit.value, hit.key, self);\n\t};\n\n\tlruCache = LRUCache;\n\treturn lruCache;\n}\n\nvar range;\nvar hasRequiredRange;\n\nfunction requireRange () {\n\tif (hasRequiredRange) return range;\n\thasRequiredRange = 1;\n\t// hoisted class for cyclic dependency\n\tclass Range {\n\t constructor (range, options) {\n\t options = parseOptions(options);\n\n\t if (range instanceof Range) {\n\t if (\n\t range.loose === !!options.loose &&\n\t range.includePrerelease === !!options.includePrerelease\n\t ) {\n\t return range\n\t } else {\n\t return new Range(range.raw, options)\n\t }\n\t }\n\n\t if (range instanceof Comparator) {\n\t // just put it in the set and return\n\t this.raw = range.value;\n\t this.set = [[range]];\n\t this.format();\n\t return this\n\t }\n\n\t this.options = options;\n\t this.loose = !!options.loose;\n\t this.includePrerelease = !!options.includePrerelease;\n\n\t // First, split based on boolean or ||\n\t this.raw = range;\n\t this.set = range\n\t .split('||')\n\t // map the range to a 2d array of comparators\n\t .map(r => this.parseRange(r.trim()))\n\t // throw out any comparator lists that are empty\n\t // this generally means that it was not a valid range, which is allowed\n\t // in loose mode, but will still throw if the WHOLE range is invalid.\n\t .filter(c => c.length);\n\n\t if (!this.set.length) {\n\t throw new TypeError(`Invalid SemVer Range: ${range}`)\n\t }\n\n\t // if we have any that are not the null set, throw out null sets.\n\t if (this.set.length > 1) {\n\t // keep the first one, in case they're all null sets\n\t const first = this.set[0];\n\t this.set = this.set.filter(c => !isNullSet(c[0]));\n\t if (this.set.length === 0) {\n\t this.set = [first];\n\t } else if (this.set.length > 1) {\n\t // if we have any that are *, then the range is just *\n\t for (const c of this.set) {\n\t if (c.length === 1 && isAny(c[0])) {\n\t this.set = [c];\n\t break\n\t }\n\t }\n\t }\n\t }\n\n\t this.format();\n\t }\n\n\t format () {\n\t this.range = this.set\n\t .map((comps) => {\n\t return comps.join(' ').trim()\n\t })\n\t .join('||')\n\t .trim();\n\t return this.range\n\t }\n\n\t toString () {\n\t return this.range\n\t }\n\n\t parseRange (range) {\n\t range = range.trim();\n\n\t // memoize range parsing for performance.\n\t // this is a very hot path, and fully deterministic.\n\t const memoOpts = Object.keys(this.options).join(',');\n\t const memoKey = `parseRange:${memoOpts}:${range}`;\n\t const cached = cache.get(memoKey);\n\t if (cached) {\n\t return cached\n\t }\n\n\t const loose = this.options.loose;\n\t // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n\t const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE];\n\t range = range.replace(hr, hyphenReplace(this.options.includePrerelease));\n\t debug('hyphen replace', range);\n\t // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n\t range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace);\n\t debug('comparator trim', range);\n\n\t // `~ 1.2.3` => `~1.2.3`\n\t range = range.replace(re[t.TILDETRIM], tildeTrimReplace);\n\n\t // `^ 1.2.3` => `^1.2.3`\n\t range = range.replace(re[t.CARETTRIM], caretTrimReplace);\n\n\t // normalize spaces\n\t range = range.split(/\\s+/).join(' ');\n\n\t // At this point, the range is completely trimmed and\n\t // ready to be split into comparators.\n\n\t let rangeList = range\n\t .split(' ')\n\t .map(comp => parseComparator(comp, this.options))\n\t .join(' ')\n\t .split(/\\s+/)\n\t // >=0.0.0 is equivalent to *\n\t .map(comp => replaceGTE0(comp, this.options));\n\n\t if (loose) {\n\t // in loose mode, throw out any that are not valid comparators\n\t rangeList = rangeList.filter(comp => {\n\t debug('loose invalid filter', comp, this.options);\n\t return !!comp.match(re[t.COMPARATORLOOSE])\n\t });\n\t }\n\t debug('range list', rangeList);\n\n\t // if any comparators are the null set, then replace with JUST null set\n\t // if more than one comparator, remove any * comparators\n\t // also, don't include the same comparator more than once\n\t const rangeMap = new Map();\n\t const comparators = rangeList.map(comp => new Comparator(comp, this.options));\n\t for (const comp of comparators) {\n\t if (isNullSet(comp)) {\n\t return [comp]\n\t }\n\t rangeMap.set(comp.value, comp);\n\t }\n\t if (rangeMap.size > 1 && rangeMap.has('')) {\n\t rangeMap.delete('');\n\t }\n\n\t const result = [...rangeMap.values()];\n\t cache.set(memoKey, result);\n\t return result\n\t }\n\n\t intersects (range, options) {\n\t if (!(range instanceof Range)) {\n\t throw new TypeError('a Range is required')\n\t }\n\n\t return this.set.some((thisComparators) => {\n\t return (\n\t isSatisfiable(thisComparators, options) &&\n\t range.set.some((rangeComparators) => {\n\t return (\n\t isSatisfiable(rangeComparators, options) &&\n\t thisComparators.every((thisComparator) => {\n\t return rangeComparators.every((rangeComparator) => {\n\t return thisComparator.intersects(rangeComparator, options)\n\t })\n\t })\n\t )\n\t })\n\t )\n\t })\n\t }\n\n\t // if ANY of the sets match ALL of its comparators, then pass\n\t test (version) {\n\t if (!version) {\n\t return false\n\t }\n\n\t if (typeof version === 'string') {\n\t try {\n\t version = new SemVer(version, this.options);\n\t } catch (er) {\n\t return false\n\t }\n\t }\n\n\t for (let i = 0; i < this.set.length; i++) {\n\t if (testSet(this.set[i], version, this.options)) {\n\t return true\n\t }\n\t }\n\t return false\n\t }\n\t}\n\trange = Range;\n\n\tconst LRU = requireLruCache();\n\tconst cache = new LRU({ max: 1000 });\n\n\tconst parseOptions = parseOptions_1;\n\tconst Comparator = requireComparator();\n\tconst debug = debug_1;\n\tconst SemVer = semver$2;\n\tconst {\n\t re,\n\t t,\n\t comparatorTrimReplace,\n\t tildeTrimReplace,\n\t caretTrimReplace,\n\t} = re$3.exports;\n\n\tconst isNullSet = c => c.value === '<0.0.0-0';\n\tconst isAny = c => c.value === '';\n\n\t// take a set of comparators and determine whether there\n\t// exists a version which can satisfy it\n\tconst isSatisfiable = (comparators, options) => {\n\t let result = true;\n\t const remainingComparators = comparators.slice();\n\t let testComparator = remainingComparators.pop();\n\n\t while (result && remainingComparators.length) {\n\t result = remainingComparators.every((otherComparator) => {\n\t return testComparator.intersects(otherComparator, options)\n\t });\n\n\t testComparator = remainingComparators.pop();\n\t }\n\n\t return result\n\t};\n\n\t// comprised of xranges, tildes, stars, and gtlt's at this point.\n\t// already replaced the hyphen ranges\n\t// turn into a set of JUST comparators.\n\tconst parseComparator = (comp, options) => {\n\t debug('comp', comp, options);\n\t comp = replaceCarets(comp, options);\n\t debug('caret', comp);\n\t comp = replaceTildes(comp, options);\n\t debug('tildes', comp);\n\t comp = replaceXRanges(comp, options);\n\t debug('xrange', comp);\n\t comp = replaceStars(comp, options);\n\t debug('stars', comp);\n\t return comp\n\t};\n\n\tconst isX = id => !id || id.toLowerCase() === 'x' || id === '*';\n\n\t// ~, ~> --> * (any, kinda silly)\n\t// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n\t// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n\t// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n\t// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n\t// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n\tconst replaceTildes = (comp, options) =>\n\t comp.trim().split(/\\s+/).map((c) => {\n\t return replaceTilde(c, options)\n\t }).join(' ');\n\n\tconst replaceTilde = (comp, options) => {\n\t const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE];\n\t return comp.replace(r, (_, M, m, p, pr) => {\n\t debug('tilde', comp, _, M, m, p, pr);\n\t let ret;\n\n\t if (isX(M)) {\n\t ret = '';\n\t } else if (isX(m)) {\n\t ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n\t } else if (isX(p)) {\n\t // ~1.2 == >=1.2.0 <1.3.0-0\n\t ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n\t } else if (pr) {\n\t debug('replaceTilde pr', pr);\n\t ret = `>=${M}.${m}.${p}-${pr\n\t } <${M}.${+m + 1}.0-0`;\n\t } else {\n\t // ~1.2.3 == >=1.2.3 <1.3.0-0\n\t ret = `>=${M}.${m}.${p\n\t } <${M}.${+m + 1}.0-0`;\n\t }\n\n\t debug('tilde return', ret);\n\t return ret\n\t })\n\t};\n\n\t// ^ --> * (any, kinda silly)\n\t// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n\t// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n\t// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n\t// ^1.2.3 --> >=1.2.3 <2.0.0-0\n\t// ^1.2.0 --> >=1.2.0 <2.0.0-0\n\tconst replaceCarets = (comp, options) =>\n\t comp.trim().split(/\\s+/).map((c) => {\n\t return replaceCaret(c, options)\n\t }).join(' ');\n\n\tconst replaceCaret = (comp, options) => {\n\t debug('caret', comp, options);\n\t const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET];\n\t const z = options.includePrerelease ? '-0' : '';\n\t return comp.replace(r, (_, M, m, p, pr) => {\n\t debug('caret', comp, _, M, m, p, pr);\n\t let ret;\n\n\t if (isX(M)) {\n\t ret = '';\n\t } else if (isX(m)) {\n\t ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n\t } else if (isX(p)) {\n\t if (M === '0') {\n\t ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n\t } else {\n\t ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n\t }\n\t } else if (pr) {\n\t debug('replaceCaret pr', pr);\n\t if (M === '0') {\n\t if (m === '0') {\n\t ret = `>=${M}.${m}.${p}-${pr\n\t } <${M}.${m}.${+p + 1}-0`;\n\t } else {\n\t ret = `>=${M}.${m}.${p}-${pr\n\t } <${M}.${+m + 1}.0-0`;\n\t }\n\t } else {\n\t ret = `>=${M}.${m}.${p}-${pr\n\t } <${+M + 1}.0.0-0`;\n\t }\n\t } else {\n\t debug('no pr');\n\t if (M === '0') {\n\t if (m === '0') {\n\t ret = `>=${M}.${m}.${p\n\t }${z} <${M}.${m}.${+p + 1}-0`;\n\t } else {\n\t ret = `>=${M}.${m}.${p\n\t }${z} <${M}.${+m + 1}.0-0`;\n\t }\n\t } else {\n\t ret = `>=${M}.${m}.${p\n\t } <${+M + 1}.0.0-0`;\n\t }\n\t }\n\n\t debug('caret return', ret);\n\t return ret\n\t })\n\t};\n\n\tconst replaceXRanges = (comp, options) => {\n\t debug('replaceXRanges', comp, options);\n\t return comp.split(/\\s+/).map((c) => {\n\t return replaceXRange(c, options)\n\t }).join(' ')\n\t};\n\n\tconst replaceXRange = (comp, options) => {\n\t comp = comp.trim();\n\t const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE];\n\t return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n\t debug('xRange', comp, ret, gtlt, M, m, p, pr);\n\t const xM = isX(M);\n\t const xm = xM || isX(m);\n\t const xp = xm || isX(p);\n\t const anyX = xp;\n\n\t if (gtlt === '=' && anyX) {\n\t gtlt = '';\n\t }\n\n\t // if we're including prereleases in the match, then we need\n\t // to fix this to -0, the lowest possible prerelease value\n\t pr = options.includePrerelease ? '-0' : '';\n\n\t if (xM) {\n\t if (gtlt === '>' || gtlt === '<') {\n\t // nothing is allowed\n\t ret = '<0.0.0-0';\n\t } else {\n\t // nothing is forbidden\n\t ret = '*';\n\t }\n\t } else if (gtlt && anyX) {\n\t // we know patch is an x, because we have any x at all.\n\t // replace X with 0\n\t if (xm) {\n\t m = 0;\n\t }\n\t p = 0;\n\n\t if (gtlt === '>') {\n\t // >1 => >=2.0.0\n\t // >1.2 => >=1.3.0\n\t gtlt = '>=';\n\t if (xm) {\n\t M = +M + 1;\n\t m = 0;\n\t p = 0;\n\t } else {\n\t m = +m + 1;\n\t p = 0;\n\t }\n\t } else if (gtlt === '<=') {\n\t // <=0.7.x is actually <0.8.0, since any 0.7.x should\n\t // pass. Similarly, <=7.x is actually <8.0.0, etc.\n\t gtlt = '<';\n\t if (xm) {\n\t M = +M + 1;\n\t } else {\n\t m = +m + 1;\n\t }\n\t }\n\n\t if (gtlt === '<') {\n\t pr = '-0';\n\t }\n\n\t ret = `${gtlt + M}.${m}.${p}${pr}`;\n\t } else if (xm) {\n\t ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n\t } else if (xp) {\n\t ret = `>=${M}.${m}.0${pr\n\t } <${M}.${+m + 1}.0-0`;\n\t }\n\n\t debug('xRange return', ret);\n\n\t return ret\n\t })\n\t};\n\n\t// Because * is AND-ed with everything else in the comparator,\n\t// and '' means \"any version\", just remove the *s entirely.\n\tconst replaceStars = (comp, options) => {\n\t debug('replaceStars', comp, options);\n\t // Looseness is ignored here. star is always as loose as it gets!\n\t return comp.trim().replace(re[t.STAR], '')\n\t};\n\n\tconst replaceGTE0 = (comp, options) => {\n\t debug('replaceGTE0', comp, options);\n\t return comp.trim()\n\t .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n\t};\n\n\t// This function is passed to string.replace(re[t.HYPHENRANGE])\n\t// M, m, patch, prerelease, build\n\t// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n\t// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n\t// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n\tconst hyphenReplace = incPr => ($0,\n\t from, fM, fm, fp, fpr, fb,\n\t to, tM, tm, tp, tpr, tb) => {\n\t if (isX(fM)) {\n\t from = '';\n\t } else if (isX(fm)) {\n\t from = `>=${fM}.0.0${incPr ? '-0' : ''}`;\n\t } else if (isX(fp)) {\n\t from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`;\n\t } else if (fpr) {\n\t from = `>=${from}`;\n\t } else {\n\t from = `>=${from}${incPr ? '-0' : ''}`;\n\t }\n\n\t if (isX(tM)) {\n\t to = '';\n\t } else if (isX(tm)) {\n\t to = `<${+tM + 1}.0.0-0`;\n\t } else if (isX(tp)) {\n\t to = `<${tM}.${+tm + 1}.0-0`;\n\t } else if (tpr) {\n\t to = `<=${tM}.${tm}.${tp}-${tpr}`;\n\t } else if (incPr) {\n\t to = `<${tM}.${tm}.${+tp + 1}-0`;\n\t } else {\n\t to = `<=${to}`;\n\t }\n\n\t return (`${from} ${to}`).trim()\n\t};\n\n\tconst testSet = (set, version, options) => {\n\t for (let i = 0; i < set.length; i++) {\n\t if (!set[i].test(version)) {\n\t return false\n\t }\n\t }\n\n\t if (version.prerelease.length && !options.includePrerelease) {\n\t // Find the set of versions that are allowed to have prereleases\n\t // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n\t // That should allow `1.2.3-pr.2` to pass.\n\t // However, `1.2.4-alpha.notready` should NOT be allowed,\n\t // even though it's within the range set by the comparators.\n\t for (let i = 0; i < set.length; i++) {\n\t debug(set[i].semver);\n\t if (set[i].semver === Comparator.ANY) {\n\t continue\n\t }\n\n\t if (set[i].semver.prerelease.length > 0) {\n\t const allowed = set[i].semver;\n\t if (allowed.major === version.major &&\n\t allowed.minor === version.minor &&\n\t allowed.patch === version.patch) {\n\t return true\n\t }\n\t }\n\t }\n\n\t // Version has a -pre, but it's not one of the ones we like.\n\t return false\n\t }\n\n\t return true\n\t};\n\treturn range;\n}\n\nvar comparator;\nvar hasRequiredComparator;\n\nfunction requireComparator () {\n\tif (hasRequiredComparator) return comparator;\n\thasRequiredComparator = 1;\n\tconst ANY = Symbol('SemVer ANY');\n\t// hoisted class for cyclic dependency\n\tclass Comparator {\n\t static get ANY () {\n\t return ANY\n\t }\n\n\t constructor (comp, options) {\n\t options = parseOptions(options);\n\n\t if (comp instanceof Comparator) {\n\t if (comp.loose === !!options.loose) {\n\t return comp\n\t } else {\n\t comp = comp.value;\n\t }\n\t }\n\n\t debug('comparator', comp, options);\n\t this.options = options;\n\t this.loose = !!options.loose;\n\t this.parse(comp);\n\n\t if (this.semver === ANY) {\n\t this.value = '';\n\t } else {\n\t this.value = this.operator + this.semver.version;\n\t }\n\n\t debug('comp', this);\n\t }\n\n\t parse (comp) {\n\t const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR];\n\t const m = comp.match(r);\n\n\t if (!m) {\n\t throw new TypeError(`Invalid comparator: ${comp}`)\n\t }\n\n\t this.operator = m[1] !== undefined ? m[1] : '';\n\t if (this.operator === '=') {\n\t this.operator = '';\n\t }\n\n\t // if it literally is just '>' or '' then allow anything.\n\t if (!m[2]) {\n\t this.semver = ANY;\n\t } else {\n\t this.semver = new SemVer(m[2], this.options.loose);\n\t }\n\t }\n\n\t toString () {\n\t return this.value\n\t }\n\n\t test (version) {\n\t debug('Comparator.test', version, this.options.loose);\n\n\t if (this.semver === ANY || version === ANY) {\n\t return true\n\t }\n\n\t if (typeof version === 'string') {\n\t try {\n\t version = new SemVer(version, this.options);\n\t } catch (er) {\n\t return false\n\t }\n\t }\n\n\t return cmp(version, this.operator, this.semver, this.options)\n\t }\n\n\t intersects (comp, options) {\n\t if (!(comp instanceof Comparator)) {\n\t throw new TypeError('a Comparator is required')\n\t }\n\n\t if (!options || typeof options !== 'object') {\n\t options = {\n\t loose: !!options,\n\t includePrerelease: false,\n\t };\n\t }\n\n\t if (this.operator === '') {\n\t if (this.value === '') {\n\t return true\n\t }\n\t return new Range(comp.value, options).test(this.value)\n\t } else if (comp.operator === '') {\n\t if (comp.value === '') {\n\t return true\n\t }\n\t return new Range(this.value, options).test(comp.semver)\n\t }\n\n\t const sameDirectionIncreasing =\n\t (this.operator === '>=' || this.operator === '>') &&\n\t (comp.operator === '>=' || comp.operator === '>');\n\t const sameDirectionDecreasing =\n\t (this.operator === '<=' || this.operator === '<') &&\n\t (comp.operator === '<=' || comp.operator === '<');\n\t const sameSemVer = this.semver.version === comp.semver.version;\n\t const differentDirectionsInclusive =\n\t (this.operator === '>=' || this.operator === '<=') &&\n\t (comp.operator === '>=' || comp.operator === '<=');\n\t const oppositeDirectionsLessThan =\n\t cmp(this.semver, '<', comp.semver, options) &&\n\t (this.operator === '>=' || this.operator === '>') &&\n\t (comp.operator === '<=' || comp.operator === '<');\n\t const oppositeDirectionsGreaterThan =\n\t cmp(this.semver, '>', comp.semver, options) &&\n\t (this.operator === '<=' || this.operator === '<') &&\n\t (comp.operator === '>=' || comp.operator === '>');\n\n\t return (\n\t sameDirectionIncreasing ||\n\t sameDirectionDecreasing ||\n\t (sameSemVer && differentDirectionsInclusive) ||\n\t oppositeDirectionsLessThan ||\n\t oppositeDirectionsGreaterThan\n\t )\n\t }\n\t}\n\n\tcomparator = Comparator;\n\n\tconst parseOptions = parseOptions_1;\n\tconst { re, t } = re$3.exports;\n\tconst cmp = cmp_1;\n\tconst debug = debug_1;\n\tconst SemVer = semver$2;\n\tconst Range = requireRange();\n\treturn comparator;\n}\n\nconst Range$8 = requireRange();\nconst satisfies$3 = (version, range, options) => {\n try {\n range = new Range$8(range, options);\n } catch (er) {\n return false\n }\n return range.test(version)\n};\nvar satisfies_1 = satisfies$3;\n\nconst Range$7 = requireRange();\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range$7(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '));\n\nvar toComparators_1 = toComparators;\n\nconst SemVer$3 = semver$2;\nconst Range$6 = requireRange();\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null;\n let maxSV = null;\n let rangeObj = null;\n try {\n rangeObj = new Range$6(range, options);\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v;\n maxSV = new SemVer$3(max, options);\n }\n }\n });\n return max\n};\nvar maxSatisfying_1 = maxSatisfying;\n\nconst SemVer$2 = semver$2;\nconst Range$5 = requireRange();\nconst minSatisfying = (versions, range, options) => {\n let min = null;\n let minSV = null;\n let rangeObj = null;\n try {\n rangeObj = new Range$5(range, options);\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v;\n minSV = new SemVer$2(min, options);\n }\n }\n });\n return min\n};\nvar minSatisfying_1 = minSatisfying;\n\nconst SemVer$1 = semver$2;\nconst Range$4 = requireRange();\nconst gt$1 = gt_1;\n\nconst minVersion = (range, loose) => {\n range = new Range$4(range, loose);\n\n let minver = new SemVer$1('0.0.0');\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer$1('0.0.0-0');\n if (range.test(minver)) {\n return minver\n }\n\n minver = null;\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i];\n\n let setMin = null;\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer$1(comparator.semver.version);\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++;\n } else {\n compver.prerelease.push(0);\n }\n compver.raw = compver.format();\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt$1(compver, setMin)) {\n setMin = compver;\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n });\n if (setMin && (!minver || gt$1(minver, setMin))) {\n minver = setMin;\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n};\nvar minVersion_1 = minVersion;\n\nconst Range$3 = requireRange();\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range$3(range, options).range || '*'\n } catch (er) {\n return null\n }\n};\nvar valid = validRange;\n\nconst SemVer = semver$2;\nconst Comparator$1 = requireComparator();\nconst { ANY: ANY$1 } = Comparator$1;\nconst Range$2 = requireRange();\nconst satisfies$2 = satisfies_1;\nconst gt = gt_1;\nconst lt = lt_1;\nconst lte = lte_1;\nconst gte = gte_1;\n\nconst outside$2 = (version, range, hilo, options) => {\n version = new SemVer(version, options);\n range = new Range$2(range, options);\n\n let gtfn, ltefn, ltfn, comp, ecomp;\n switch (hilo) {\n case '>':\n gtfn = gt;\n ltefn = lte;\n ltfn = lt;\n comp = '>';\n ecomp = '>=';\n break\n case '<':\n gtfn = lt;\n ltefn = gte;\n ltfn = gt;\n comp = '<';\n ecomp = '<=';\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies$2(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i];\n\n let high = null;\n let low = null;\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY$1) {\n comparator = new Comparator$1('>=0.0.0');\n }\n high = high || comparator;\n low = low || comparator;\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator;\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator;\n }\n });\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n};\n\nvar outside_1 = outside$2;\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside$1 = outside_1;\nconst gtr = (version, range, options) => outside$1(version, range, '>', options);\nvar gtr_1 = gtr;\n\nconst outside = outside_1;\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options);\nvar ltr_1 = ltr;\n\nconst Range$1 = requireRange();\nconst intersects = (r1, r2, options) => {\n r1 = new Range$1(r1, options);\n r2 = new Range$1(r2, options);\n return r1.intersects(r2)\n};\nvar intersects_1 = intersects;\n\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies$1 = satisfies_1;\nconst compare$1 = compare_1;\nvar simplify = (versions, range, options) => {\n const set = [];\n let first = null;\n let prev = null;\n const v = versions.sort((a, b) => compare$1(a, b, options));\n for (const version of v) {\n const included = satisfies$1(version, range, options);\n if (included) {\n prev = version;\n if (!first) {\n first = version;\n }\n } else {\n if (prev) {\n set.push([first, prev]);\n }\n prev = null;\n first = null;\n }\n }\n if (first) {\n set.push([first, null]);\n }\n\n const ranges = [];\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min);\n } else if (!max && min === v[0]) {\n ranges.push('*');\n } else if (!max) {\n ranges.push(`>=${min}`);\n } else if (min === v[0]) {\n ranges.push(`<=${max}`);\n } else {\n ranges.push(`${min} - ${max}`);\n }\n }\n const simplified = ranges.join(' || ');\n const original = typeof range.raw === 'string' ? range.raw : String(range);\n return simplified.length < original.length ? simplified : range\n};\n\nconst Range = requireRange();\nconst Comparator = requireComparator();\nconst { ANY } = Comparator;\nconst satisfies = satisfies_1;\nconst compare = compare_1;\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options);\n dom = new Range(dom, options);\n let sawNonNull = false;\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options);\n sawNonNull = sawNonNull || isSub !== null;\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n};\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = [new Comparator('>=0.0.0-0')];\n } else {\n sub = [new Comparator('>=0.0.0')];\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = [new Comparator('>=0.0.0')];\n }\n }\n\n const eqSet = new Set();\n let gt, lt;\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options);\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options);\n } else {\n eqSet.add(c.semver);\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp;\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options);\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower;\n let hasDomLT, hasDomGT;\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false;\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false;\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false;\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>=';\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<=';\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false;\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options);\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false;\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options);\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n};\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options);\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n};\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options);\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n};\n\nvar subset_1 = subset;\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = re$3.exports;\nvar semver$1 = {\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n SemVer: semver$2,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n parse: parse_1,\n valid: valid_1,\n clean: clean_1,\n inc: inc_1,\n diff: diff_1,\n major: major_1,\n minor: minor_1,\n patch: patch_1,\n prerelease: prerelease_1,\n compare: compare_1,\n rcompare: rcompare_1,\n compareLoose: compareLoose_1,\n compareBuild: compareBuild_1,\n sort: sort_1,\n rsort: rsort_1,\n gt: gt_1,\n lt: lt_1,\n eq: eq_1,\n neq: neq_1,\n gte: gte_1,\n lte: lte_1,\n cmp: cmp_1,\n coerce: coerce_1,\n Comparator: requireComparator(),\n Range: requireRange(),\n satisfies: satisfies_1,\n toComparators: toComparators_1,\n maxSatisfying: maxSatisfying_1,\n minSatisfying: minSatisfying_1,\n minVersion: minVersion_1,\n validRange: valid,\n outside: outside_1,\n gtr: gtr_1,\n ltr: ltr_1,\n intersects: intersects_1,\n simplifyRange: simplify,\n subset: subset_1,\n};\n\nvar semver = semver$1;\n\nvar builtins = function ({\n version = process.version,\n experimental = false\n} = {}) {\n var coreModules = [\n 'assert',\n 'buffer',\n 'child_process',\n 'cluster',\n 'console',\n 'constants',\n 'crypto',\n 'dgram',\n 'dns',\n 'domain',\n 'events',\n 'fs',\n 'http',\n 'https',\n 'module',\n 'net',\n 'os',\n 'path',\n 'punycode',\n 'querystring',\n 'readline',\n 'repl',\n 'stream',\n 'string_decoder',\n 'sys',\n 'timers',\n 'tls',\n 'tty',\n 'url',\n 'util',\n 'vm',\n 'zlib'\n ];\n\n if (semver.lt(version, '6.0.0')) coreModules.push('freelist');\n if (semver.gte(version, '1.0.0')) coreModules.push('v8');\n if (semver.gte(version, '1.1.0')) coreModules.push('process');\n if (semver.gte(version, '8.0.0')) coreModules.push('inspector');\n if (semver.gte(version, '8.1.0')) coreModules.push('async_hooks');\n if (semver.gte(version, '8.4.0')) coreModules.push('http2');\n if (semver.gte(version, '8.5.0')) coreModules.push('perf_hooks');\n if (semver.gte(version, '10.0.0')) coreModules.push('trace_events');\n\n if (\n semver.gte(version, '10.5.0') &&\n (experimental || semver.gte(version, '12.0.0'))\n ) {\n coreModules.push('worker_threads');\n }\n if (semver.gte(version, '12.16.0') && experimental) {\n coreModules.push('wasi');\n }\n \n return coreModules\n};\n\n// Manually “tree shaken” from:\n\nconst reader = {read};\n\n/**\n * @param {string} jsonPath\n * @returns {{string: string}}\n */\nfunction read(jsonPath) {\n return find(path.dirname(jsonPath))\n}\n\n/**\n * @param {string} dir\n * @returns {{string: string}}\n */\nfunction find(dir) {\n try {\n const string = fs.readFileSync(\n path.toNamespacedPath(path.join(dir, 'package.json')),\n 'utf8'\n );\n return {string}\n } catch (error) {\n if (error.code === 'ENOENT') {\n const parent = path.dirname(dir);\n if (dir !== parent) return find(parent)\n return {string: undefined}\n // Throw all other errors.\n /* c8 ignore next 4 */\n }\n\n throw error\n }\n}\n\n// Manually “tree shaken” from:\n\nconst isWindows = process.platform === 'win32';\n\nconst own$1 = {}.hasOwnProperty;\n\nconst codes = {};\n\n/**\n * @typedef {(...args: unknown[]) => string} MessageFunction\n */\n\n/** @type {Map} */\nconst messages = new Map();\nconst nodeInternalPrefix = '__node_internal_';\n/** @type {number} */\nlet userStackTraceLimit;\n\ncodes.ERR_INVALID_MODULE_SPECIFIER = createError(\n 'ERR_INVALID_MODULE_SPECIFIER',\n /**\n * @param {string} request\n * @param {string} reason\n * @param {string} [base]\n */\n (request, reason, base = undefined) => {\n return `Invalid module \"${request}\" ${reason}${\n base ? ` imported from ${base}` : ''\n }`\n },\n TypeError\n);\n\ncodes.ERR_INVALID_PACKAGE_CONFIG = createError(\n 'ERR_INVALID_PACKAGE_CONFIG',\n /**\n * @param {string} path\n * @param {string} [base]\n * @param {string} [message]\n */\n (path, base, message) => {\n return `Invalid package config ${path}${\n base ? ` while importing ${base}` : ''\n }${message ? `. ${message}` : ''}`\n },\n Error\n);\n\ncodes.ERR_INVALID_PACKAGE_TARGET = createError(\n 'ERR_INVALID_PACKAGE_TARGET',\n /**\n * @param {string} pkgPath\n * @param {string} key\n * @param {unknown} target\n * @param {boolean} [isImport=false]\n * @param {string} [base]\n */\n (pkgPath, key, target, isImport = false, base = undefined) => {\n const relError =\n typeof target === 'string' &&\n !isImport &&\n target.length > 0 &&\n !target.startsWith('./');\n if (key === '.') {\n assert(isImport === false);\n return (\n `Invalid \"exports\" main target ${JSON.stringify(target)} defined ` +\n `in the package config ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }${relError ? '; targets must start with \"./\"' : ''}`\n )\n }\n\n return `Invalid \"${\n isImport ? 'imports' : 'exports'\n }\" target ${JSON.stringify(\n target\n )} defined for '${key}' in the package config ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }${relError ? '; targets must start with \"./\"' : ''}`\n },\n Error\n);\n\ncodes.ERR_MODULE_NOT_FOUND = createError(\n 'ERR_MODULE_NOT_FOUND',\n /**\n * @param {string} path\n * @param {string} base\n * @param {string} [type]\n */\n (path, base, type = 'package') => {\n return `Cannot find ${type} '${path}' imported from ${base}`\n },\n Error\n);\n\ncodes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError(\n 'ERR_PACKAGE_IMPORT_NOT_DEFINED',\n /**\n * @param {string} specifier\n * @param {string} packagePath\n * @param {string} base\n */\n (specifier, packagePath, base) => {\n return `Package import specifier \"${specifier}\" is not defined${\n packagePath ? ` in package ${packagePath}package.json` : ''\n } imported from ${base}`\n },\n TypeError\n);\n\ncodes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError(\n 'ERR_PACKAGE_PATH_NOT_EXPORTED',\n /**\n * @param {string} pkgPath\n * @param {string} subpath\n * @param {string} [base]\n */\n (pkgPath, subpath, base = undefined) => {\n if (subpath === '.')\n return `No \"exports\" main defined in ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n return `Package subpath '${subpath}' is not defined by \"exports\" in ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n },\n Error\n);\n\ncodes.ERR_UNSUPPORTED_DIR_IMPORT = createError(\n 'ERR_UNSUPPORTED_DIR_IMPORT',\n \"Directory import '%s' is not supported \" +\n 'resolving ES modules imported from %s',\n Error\n);\n\ncodes.ERR_UNKNOWN_FILE_EXTENSION = createError(\n 'ERR_UNKNOWN_FILE_EXTENSION',\n 'Unknown file extension \"%s\" for %s',\n TypeError\n);\n\ncodes.ERR_INVALID_ARG_VALUE = createError(\n 'ERR_INVALID_ARG_VALUE',\n /**\n * @param {string} name\n * @param {unknown} value\n * @param {string} [reason='is invalid']\n */\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value);\n\n if (inspected.length > 128) {\n inspected = `${inspected.slice(0, 128)}...`;\n }\n\n const type = name.includes('.') ? 'property' : 'argument';\n\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n // Note: extra classes have been shaken out.\n // , RangeError\n);\n\ncodes.ERR_UNSUPPORTED_ESM_URL_SCHEME = createError(\n 'ERR_UNSUPPORTED_ESM_URL_SCHEME',\n /**\n * @param {URL} url\n */\n (url) => {\n let message =\n 'Only file and data URLs are supported by the default ESM loader';\n\n if (isWindows && url.protocol.length === 2) {\n message += '. On Windows, absolute paths must be valid file:// URLs';\n }\n\n message += `. Received protocol '${url.protocol}'`;\n return message\n },\n Error\n);\n\n/**\n * Utility function for registering the error codes. Only used here. Exported\n * *only* to allow for testing.\n * @param {string} sym\n * @param {MessageFunction|string} value\n * @param {ErrorConstructor} def\n * @returns {new (...args: unknown[]) => Error}\n */\nfunction createError(sym, value, def) {\n // Special case for SystemError that formats the error message differently\n // The SystemErrors only have SystemError as their base classes.\n messages.set(sym, value);\n\n return makeNodeErrorWithCode(def, sym)\n}\n\n/**\n * @param {ErrorConstructor} Base\n * @param {string} key\n * @returns {ErrorConstructor}\n */\nfunction makeNodeErrorWithCode(Base, key) {\n // @ts-expect-error It’s a Node error.\n return NodeError\n /**\n * @param {unknown[]} args\n */\n function NodeError(...args) {\n const limit = Error.stackTraceLimit;\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n const error = new Base();\n // Reset the limit and setting the name property.\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;\n const message = getMessage(key, args, error);\n Object.defineProperty(error, 'message', {\n value: message,\n enumerable: false,\n writable: true,\n configurable: true\n });\n Object.defineProperty(error, 'toString', {\n /** @this {Error} */\n value() {\n return `${this.name} [${key}]: ${this.message}`\n },\n enumerable: false,\n writable: true,\n configurable: true\n });\n addCodeToName(error, Base.name, key);\n // @ts-expect-error It’s a Node error.\n error.code = key;\n return error\n }\n}\n\nconst addCodeToName = hideStackFrames(\n /**\n * @param {Error} error\n * @param {string} name\n * @param {string} code\n * @returns {void}\n */\n function (error, name, code) {\n // Set the stack\n error = captureLargerStackTrace(error);\n // Add the error code to the name to include it in the stack trace.\n error.name = `${name} [${code}]`;\n // Access the stack to generate the error message including the error code\n // from the name.\n error.stack; // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n if (name === 'SystemError') {\n Object.defineProperty(error, 'name', {\n value: name,\n enumerable: false,\n writable: true,\n configurable: true\n });\n } else {\n delete error.name;\n }\n }\n);\n\n/**\n * @returns {boolean}\n */\nfunction isErrorStackTraceLimitWritable() {\n const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit');\n if (desc === undefined) {\n return Object.isExtensible(Error)\n }\n\n return own$1.call(desc, 'writable') ? desc.writable : desc.set !== undefined\n}\n\n/**\n * This function removes unnecessary frames from Node.js core errors.\n * @template {(...args: unknown[]) => unknown} T\n * @type {(fn: T) => T}\n */\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name;\n Object.defineProperty(fn, 'name', {value: hidden});\n return fn\n}\n\nconst captureLargerStackTrace = hideStackFrames(\n /**\n * @param {Error} error\n * @returns {Error}\n */\n function (error) {\n const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable();\n if (stackTraceLimitIsWritable) {\n userStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Number.POSITIVE_INFINITY;\n }\n\n Error.captureStackTrace(error);\n\n // Reset the limit\n if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit;\n\n return error\n }\n);\n\n/**\n * @param {string} key\n * @param {unknown[]} args\n * @param {Error} self\n * @returns {string}\n */\nfunction getMessage(key, args, self) {\n const message = messages.get(key);\n\n if (typeof message === 'function') {\n assert(\n message.length <= args.length, // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not ` +\n `match the required ones (${message.length}).`\n );\n return Reflect.apply(message, self, args)\n }\n\n const expectedLength = (message.match(/%[dfijoOs]/g) || []).length;\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not ` +\n `match the required ones (${expectedLength}).`\n );\n if (args.length === 0) return message\n\n args.unshift(message);\n return Reflect.apply(format, null, args)\n}\n\n// Manually “tree shaken” from:\n\nconst {ERR_UNKNOWN_FILE_EXTENSION} = codes;\n\nconst extensionFormatMap = {\n __proto__: null,\n '.cjs': 'commonjs',\n '.js': 'module',\n '.mjs': 'module'\n};\n\n/**\n * @param {string} url\n * @returns {{format: string|null}}\n */\nfunction defaultGetFormat(url) {\n if (url.startsWith('node:')) {\n return {format: 'builtin'}\n }\n\n const parsed = new URL(url);\n\n if (parsed.protocol === 'data:') {\n const {1: mime} = /^([^/]+\\/[^;,]+)[^,]*?(;base64)?,/.exec(\n parsed.pathname\n ) || [null, null];\n const format = mime === 'text/javascript' ? 'module' : null;\n return {format}\n }\n\n if (parsed.protocol === 'file:') {\n const ext = path.extname(parsed.pathname);\n /** @type {string} */\n let format;\n if (ext === '.js') {\n format = getPackageType(parsed.href) === 'module' ? 'module' : 'commonjs';\n } else {\n format = extensionFormatMap[ext];\n }\n\n if (!format) {\n throw new ERR_UNKNOWN_FILE_EXTENSION(ext, fileURLToPath(url))\n }\n\n return {format: format || null}\n }\n\n return {format: null}\n}\n\n// Manually “tree shaken” from:\n\nconst listOfBuiltins = builtins();\n\nconst {\n ERR_INVALID_MODULE_SPECIFIER,\n ERR_INVALID_PACKAGE_CONFIG,\n ERR_INVALID_PACKAGE_TARGET,\n ERR_MODULE_NOT_FOUND,\n ERR_PACKAGE_IMPORT_NOT_DEFINED,\n ERR_PACKAGE_PATH_NOT_EXPORTED,\n ERR_UNSUPPORTED_DIR_IMPORT,\n ERR_UNSUPPORTED_ESM_URL_SCHEME,\n ERR_INVALID_ARG_VALUE\n} = codes;\n\nconst own = {}.hasOwnProperty;\n\nconst DEFAULT_CONDITIONS = Object.freeze(['node', 'import']);\nconst DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS);\n\nconst invalidSegmentRegEx = /(^|\\\\|\\/)(\\.\\.?|node_modules)(\\\\|\\/|$)/;\nconst patternRegEx = /\\*/g;\nconst encodedSepRegEx = /%2f|%2c/i;\n/** @type {Set} */\nconst emittedPackageWarnings = new Set();\n/** @type {Map} */\nconst packageJsonCache = new Map();\n\n/**\n * @param {string} match\n * @param {URL} pjsonUrl\n * @param {boolean} isExports\n * @param {URL} base\n * @returns {void}\n */\nfunction emitFolderMapDeprecation(match, pjsonUrl, isExports, base) {\n const pjsonPath = fileURLToPath(pjsonUrl);\n\n if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return\n emittedPackageWarnings.add(pjsonPath + '|' + match);\n process.emitWarning(\n `Use of deprecated folder mapping \"${match}\" in the ${\n isExports ? '\"exports\"' : '\"imports\"'\n } field module resolution of the package at ${pjsonPath}${\n base ? ` imported from ${fileURLToPath(base)}` : ''\n }.\\n` +\n `Update this package.json to use a subpath pattern like \"${match}*\".`,\n 'DeprecationWarning',\n 'DEP0148'\n );\n}\n\n/**\n * @param {URL} url\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {unknown} [main]\n * @returns {void}\n */\nfunction emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) {\n const {format} = defaultGetFormat(url.href);\n if (format !== 'module') return\n const path = fileURLToPath(url.href);\n const pkgPath = fileURLToPath(new URL('.', packageJsonUrl));\n const basePath = fileURLToPath(base);\n if (main)\n process.emitWarning(\n `Package ${pkgPath} has a \"main\" field set to ${JSON.stringify(main)}, ` +\n `excluding the full filename and extension to the resolved file at \"${path.slice(\n pkgPath.length\n )}\", imported from ${basePath}.\\n Automatic extension resolution of the \"main\" field is` +\n 'deprecated for ES modules.',\n 'DeprecationWarning',\n 'DEP0151'\n );\n else\n process.emitWarning(\n `No \"main\" or \"exports\" field defined in the package.json for ${pkgPath} resolving the main entry point \"${path.slice(\n pkgPath.length\n )}\", imported from ${basePath}.\\nDefault \"index\" lookups for the main are deprecated for ES modules.`,\n 'DeprecationWarning',\n 'DEP0151'\n );\n}\n\n/**\n * @param {string[]} [conditions]\n * @returns {Set}\n */\nfunction getConditionsSet(conditions) {\n if (conditions !== undefined && conditions !== DEFAULT_CONDITIONS) {\n if (!Array.isArray(conditions)) {\n throw new ERR_INVALID_ARG_VALUE(\n 'conditions',\n conditions,\n 'expected an array'\n )\n }\n\n return new Set(conditions)\n }\n\n return DEFAULT_CONDITIONS_SET\n}\n\n/**\n * @param {string} path\n * @returns {Stats}\n */\nfunction tryStatSync(path) {\n // Note: from Node 15 onwards we can use `throwIfNoEntry: false` instead.\n try {\n return statSync(path)\n } catch {\n return new Stats()\n }\n}\n\n/**\n * @param {string} path\n * @param {string|URL} specifier Note: `specifier` is actually optional, not base.\n * @param {URL} [base]\n * @returns {PackageConfig}\n */\nfunction getPackageConfig(path, specifier, base) {\n const existing = packageJsonCache.get(path);\n if (existing !== undefined) {\n return existing\n }\n\n const source = reader.read(path).string;\n\n if (source === undefined) {\n /** @type {PackageConfig} */\n const packageConfig = {\n pjsonPath: path,\n exists: false,\n main: undefined,\n name: undefined,\n type: 'none',\n exports: undefined,\n imports: undefined\n };\n packageJsonCache.set(path, packageConfig);\n return packageConfig\n }\n\n /** @type {Object.} */\n let packageJson;\n try {\n packageJson = JSON.parse(source);\n } catch (error) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n path,\n (base ? `\"${specifier}\" from ` : '') + fileURLToPath(base || specifier),\n error.message\n )\n }\n\n const {exports, imports, main, name, type} = packageJson;\n\n /** @type {PackageConfig} */\n const packageConfig = {\n pjsonPath: path,\n exists: true,\n main: typeof main === 'string' ? main : undefined,\n name: typeof name === 'string' ? name : undefined,\n type: type === 'module' || type === 'commonjs' ? type : 'none',\n // @ts-expect-error Assume `Object.`.\n exports,\n // @ts-expect-error Assume `Object.`.\n imports: imports && typeof imports === 'object' ? imports : undefined\n };\n packageJsonCache.set(path, packageConfig);\n return packageConfig\n}\n\n/**\n * @param {URL|string} resolved\n * @returns {PackageConfig}\n */\nfunction getPackageScopeConfig(resolved) {\n let packageJsonUrl = new URL('./package.json', resolved);\n\n while (true) {\n const packageJsonPath = packageJsonUrl.pathname;\n\n if (packageJsonPath.endsWith('node_modules/package.json')) break\n\n const packageConfig = getPackageConfig(\n fileURLToPath(packageJsonUrl),\n resolved\n );\n if (packageConfig.exists) return packageConfig\n\n const lastPackageJsonUrl = packageJsonUrl;\n packageJsonUrl = new URL('../package.json', packageJsonUrl);\n\n // Terminates at root where ../package.json equals ../../package.json\n // (can't just check \"/package.json\" for Windows support).\n if (packageJsonUrl.pathname === lastPackageJsonUrl.pathname) break\n }\n\n const packageJsonPath = fileURLToPath(packageJsonUrl);\n /** @type {PackageConfig} */\n const packageConfig = {\n pjsonPath: packageJsonPath,\n exists: false,\n main: undefined,\n name: undefined,\n type: 'none',\n exports: undefined,\n imports: undefined\n };\n packageJsonCache.set(packageJsonPath, packageConfig);\n return packageConfig\n}\n\n/**\n * Legacy CommonJS main resolution:\n * 1. let M = pkg_url + (json main field)\n * 2. TRY(M, M.js, M.json, M.node)\n * 3. TRY(M/index.js, M/index.json, M/index.node)\n * 4. TRY(pkg_url/index.js, pkg_url/index.json, pkg_url/index.node)\n * 5. NOT_FOUND\n *\n * @param {URL} url\n * @returns {boolean}\n */\nfunction fileExists(url) {\n return tryStatSync(fileURLToPath(url)).isFile()\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {PackageConfig} packageConfig\n * @param {URL} base\n * @returns {URL}\n */\nfunction legacyMainResolve(packageJsonUrl, packageConfig, base) {\n /** @type {URL} */\n let guess;\n if (packageConfig.main !== undefined) {\n guess = new URL(`./${packageConfig.main}`, packageJsonUrl);\n // Note: fs check redundances will be handled by Descriptor cache here.\n if (fileExists(guess)) return guess\n\n const tries = [\n `./${packageConfig.main}.js`,\n `./${packageConfig.main}.json`,\n `./${packageConfig.main}.node`,\n `./${packageConfig.main}/index.js`,\n `./${packageConfig.main}/index.json`,\n `./${packageConfig.main}/index.node`\n ];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(\n guess,\n packageJsonUrl,\n base,\n packageConfig.main\n );\n return guess\n }\n // Fallthrough.\n }\n\n const tries = ['./index.js', './index.json', './index.node'];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main);\n return guess\n }\n\n // Not found.\n throw new ERR_MODULE_NOT_FOUND(\n fileURLToPath(new URL('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {URL} resolved\n * @param {URL} base\n * @returns {URL}\n */\nfunction finalizeResolution(resolved, base) {\n if (encodedSepRegEx.test(resolved.pathname))\n throw new ERR_INVALID_MODULE_SPECIFIER(\n resolved.pathname,\n 'must not include encoded \"/\" or \"\\\\\" characters',\n fileURLToPath(base)\n )\n\n const path = fileURLToPath(resolved);\n\n const stats = tryStatSync(path.endsWith('/') ? path.slice(-1) : path);\n\n if (stats.isDirectory()) {\n const error = new ERR_UNSUPPORTED_DIR_IMPORT(path, fileURLToPath(base));\n // @ts-expect-error Add this for `import.meta.resolve`.\n error.url = String(resolved);\n throw error\n }\n\n if (!stats.isFile()) {\n throw new ERR_MODULE_NOT_FOUND(\n path || resolved.pathname,\n base && fileURLToPath(base),\n 'module'\n )\n }\n\n return resolved\n}\n\n/**\n * @param {string} specifier\n * @param {URL?} packageJsonUrl\n * @param {URL} base\n * @returns {never}\n */\nfunction throwImportNotDefined(specifier, packageJsonUrl, base) {\n throw new ERR_PACKAGE_IMPORT_NOT_DEFINED(\n specifier,\n packageJsonUrl && fileURLToPath(new URL('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {never}\n */\nfunction throwExportsNotFound(subpath, packageJsonUrl, base) {\n throw new ERR_PACKAGE_PATH_NOT_EXPORTED(\n fileURLToPath(new URL('.', packageJsonUrl)),\n subpath,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {never}\n */\nfunction throwInvalidSubpath(subpath, packageJsonUrl, internal, base) {\n const reason = `request is not a valid subpath for the \"${\n internal ? 'imports' : 'exports'\n }\" resolution of ${fileURLToPath(packageJsonUrl)}`;\n\n throw new ERR_INVALID_MODULE_SPECIFIER(\n subpath,\n reason,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {unknown} target\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {never}\n */\nfunction throwInvalidPackageTarget(\n subpath,\n target,\n packageJsonUrl,\n internal,\n base\n) {\n target =\n typeof target === 'object' && target !== null\n ? JSON.stringify(target, null, '')\n : `${target}`;\n\n throw new ERR_INVALID_PACKAGE_TARGET(\n fileURLToPath(new URL('.', packageJsonUrl)),\n subpath,\n target,\n internal,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} target\n * @param {string} subpath\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {Set} conditions\n * @returns {URL}\n */\nfunction resolvePackageTargetString(\n target,\n subpath,\n match,\n packageJsonUrl,\n base,\n pattern,\n internal,\n conditions\n) {\n if (subpath !== '' && !pattern && target[target.length - 1] !== '/')\n throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base);\n\n if (!target.startsWith('./')) {\n if (internal && !target.startsWith('../') && !target.startsWith('/')) {\n let isURL = false;\n\n try {\n new URL(target);\n isURL = true;\n } catch {}\n\n if (!isURL) {\n const exportTarget = pattern\n ? target.replace(patternRegEx, subpath)\n : target + subpath;\n\n return packageResolve(exportTarget, packageJsonUrl, conditions)\n }\n }\n\n throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base);\n }\n\n if (invalidSegmentRegEx.test(target.slice(2)))\n throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base);\n\n const resolved = new URL(target, packageJsonUrl);\n const resolvedPath = resolved.pathname;\n const packagePath = new URL('.', packageJsonUrl).pathname;\n\n if (!resolvedPath.startsWith(packagePath))\n throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base);\n\n if (subpath === '') return resolved\n\n if (invalidSegmentRegEx.test(subpath))\n throwInvalidSubpath(match + subpath, packageJsonUrl, internal, base);\n\n if (pattern) return new URL(resolved.href.replace(patternRegEx, subpath))\n return new URL(subpath, resolved)\n}\n\n/**\n * @param {string} key\n * @returns {boolean}\n */\nfunction isArrayIndex(key) {\n const keyNumber = Number(key);\n if (`${keyNumber}` !== key) return false\n return keyNumber >= 0 && keyNumber < 0xffff_ffff\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {unknown} target\n * @param {string} subpath\n * @param {string} packageSubpath\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {Set} conditions\n * @returns {URL}\n */\nfunction resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n conditions\n) {\n if (typeof target === 'string') {\n return resolvePackageTargetString(\n target,\n subpath,\n packageSubpath,\n packageJsonUrl,\n base,\n pattern,\n internal,\n conditions\n )\n }\n\n if (Array.isArray(target)) {\n /** @type {unknown[]} */\n const targetList = target;\n if (targetList.length === 0) return null\n\n /** @type {Error} */\n let lastException;\n let i = -1;\n\n while (++i < targetList.length) {\n const targetItem = targetList[i];\n /** @type {URL} */\n let resolved;\n try {\n resolved = resolvePackageTarget(\n packageJsonUrl,\n targetItem,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n conditions\n );\n } catch (error) {\n lastException = error;\n if (error.code === 'ERR_INVALID_PACKAGE_TARGET') continue\n throw error\n }\n\n if (resolved === undefined) continue\n\n if (resolved === null) {\n lastException = null;\n continue\n }\n\n return resolved\n }\n\n if (lastException === undefined || lastException === null) {\n // @ts-expect-error The diff between `undefined` and `null` seems to be\n // intentional\n return lastException\n }\n\n throw lastException\n }\n\n if (typeof target === 'object' && target !== null) {\n const keys = Object.getOwnPropertyNames(target);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (isArrayIndex(key)) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain numeric property keys.'\n )\n }\n }\n\n i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (key === 'default' || (conditions && conditions.has(key))) {\n /** @type {unknown} */\n const conditionalTarget = target[key];\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n conditionalTarget,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n conditions\n );\n if (resolved === undefined) continue\n return resolved\n }\n }\n\n return undefined\n }\n\n if (target === null) {\n return null\n }\n\n throwInvalidPackageTarget(\n packageSubpath,\n target,\n packageJsonUrl,\n internal,\n base\n );\n}\n\n/**\n * @param {unknown} exports\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {boolean}\n */\nfunction isConditionalExportsMainSugar(exports, packageJsonUrl, base) {\n if (typeof exports === 'string' || Array.isArray(exports)) return true\n if (typeof exports !== 'object' || exports === null) return false\n\n const keys = Object.getOwnPropertyNames(exports);\n let isConditionalSugar = false;\n let i = 0;\n let j = -1;\n while (++j < keys.length) {\n const key = keys[j];\n const curIsConditionalSugar = key === '' || key[0] !== '.';\n if (i++ === 0) {\n isConditionalSugar = curIsConditionalSugar;\n } else if (isConditionalSugar !== curIsConditionalSugar) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain some keys starting with \\'.\\' and some not.' +\n ' The exports object must either be an object of package subpath keys' +\n ' or an object of main entry condition name keys only.'\n )\n }\n }\n\n return isConditionalSugar\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {string} packageSubpath\n * @param {Object.} packageConfig\n * @param {URL} base\n * @param {Set} conditions\n * @returns {ResolveObject}\n */\nfunction packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n) {\n let exports = packageConfig.exports;\n if (isConditionalExportsMainSugar(exports, packageJsonUrl, base))\n exports = {'.': exports};\n\n if (own.call(exports, packageSubpath)) {\n const target = exports[packageSubpath];\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n target,\n '',\n packageSubpath,\n base,\n false,\n false,\n conditions\n );\n if (resolved === null || resolved === undefined)\n throwExportsNotFound(packageSubpath, packageJsonUrl, base);\n return {resolved, exact: true}\n }\n\n let bestMatch = '';\n const keys = Object.getOwnPropertyNames(exports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (\n key[key.length - 1] === '*' &&\n packageSubpath.startsWith(key.slice(0, -1)) &&\n packageSubpath.length >= key.length &&\n key.length > bestMatch.length\n ) {\n bestMatch = key;\n } else if (\n key[key.length - 1] === '/' &&\n packageSubpath.startsWith(key) &&\n key.length > bestMatch.length\n ) {\n bestMatch = key;\n }\n }\n\n if (bestMatch) {\n const target = exports[bestMatch];\n const pattern = bestMatch[bestMatch.length - 1] === '*';\n const subpath = packageSubpath.slice(bestMatch.length - (pattern ? 1 : 0));\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n bestMatch,\n base,\n pattern,\n false,\n conditions\n );\n if (resolved === null || resolved === undefined)\n throwExportsNotFound(packageSubpath, packageJsonUrl, base);\n if (!pattern)\n emitFolderMapDeprecation(bestMatch, packageJsonUrl, true, base);\n return {resolved, exact: pattern}\n }\n\n throwExportsNotFound(packageSubpath, packageJsonUrl, base);\n}\n\n/**\n * @param {string} name\n * @param {URL} base\n * @param {Set} [conditions]\n * @returns {ResolveObject}\n */\nfunction packageImportsResolve(name, base, conditions) {\n if (name === '#' || name.startsWith('#/')) {\n const reason = 'is not a valid internal imports specifier name';\n throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base))\n }\n\n /** @type {URL} */\n let packageJsonUrl;\n\n const packageConfig = getPackageScopeConfig(base);\n\n if (packageConfig.exists) {\n packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n const imports = packageConfig.imports;\n if (imports) {\n if (own.call(imports, name)) {\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n imports[name],\n '',\n name,\n base,\n false,\n true,\n conditions\n );\n if (resolved !== null) return {resolved, exact: true}\n } else {\n let bestMatch = '';\n const keys = Object.getOwnPropertyNames(imports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n\n if (\n key[key.length - 1] === '*' &&\n name.startsWith(key.slice(0, -1)) &&\n name.length >= key.length &&\n key.length > bestMatch.length\n ) {\n bestMatch = key;\n } else if (\n key[key.length - 1] === '/' &&\n name.startsWith(key) &&\n key.length > bestMatch.length\n ) {\n bestMatch = key;\n }\n }\n\n if (bestMatch) {\n const target = imports[bestMatch];\n const pattern = bestMatch[bestMatch.length - 1] === '*';\n const subpath = name.slice(bestMatch.length - (pattern ? 1 : 0));\n const resolved = resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n bestMatch,\n base,\n pattern,\n true,\n conditions\n );\n if (resolved !== null) {\n if (!pattern)\n emitFolderMapDeprecation(bestMatch, packageJsonUrl, false, base);\n return {resolved, exact: pattern}\n }\n }\n }\n }\n }\n\n throwImportNotDefined(name, packageJsonUrl, base);\n}\n\n/**\n * @param {string} url\n * @returns {PackageType}\n */\nfunction getPackageType(url) {\n const packageConfig = getPackageScopeConfig(url);\n return packageConfig.type\n}\n\n/**\n * @param {string} specifier\n * @param {URL} base\n */\nfunction parsePackageName(specifier, base) {\n let separatorIndex = specifier.indexOf('/');\n let validPackageName = true;\n let isScoped = false;\n if (specifier[0] === '@') {\n isScoped = true;\n if (separatorIndex === -1 || specifier.length === 0) {\n validPackageName = false;\n } else {\n separatorIndex = specifier.indexOf('/', separatorIndex + 1);\n }\n }\n\n const packageName =\n separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex);\n\n // Package name cannot have leading . and cannot have percent-encoding or\n // separators.\n let i = -1;\n while (++i < packageName.length) {\n if (packageName[i] === '%' || packageName[i] === '\\\\') {\n validPackageName = false;\n break\n }\n }\n\n if (!validPackageName) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n specifier,\n 'is not a valid package name',\n fileURLToPath(base)\n )\n }\n\n const packageSubpath =\n '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex));\n\n return {packageName, packageSubpath, isScoped}\n}\n\n/**\n * @param {string} specifier\n * @param {URL} base\n * @param {Set} conditions\n * @returns {URL}\n */\nfunction packageResolve(specifier, base, conditions) {\n const {packageName, packageSubpath, isScoped} = parsePackageName(\n specifier,\n base\n );\n\n // ResolveSelf\n const packageConfig = getPackageScopeConfig(base);\n\n // Can’t test.\n /* c8 ignore next 16 */\n if (packageConfig.exists) {\n const packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n if (\n packageConfig.name === packageName &&\n packageConfig.exports !== undefined &&\n packageConfig.exports !== null\n ) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n ).resolved\n }\n }\n\n let packageJsonUrl = new URL(\n './node_modules/' + packageName + '/package.json',\n base\n );\n let packageJsonPath = fileURLToPath(packageJsonUrl);\n /** @type {string} */\n let lastPath;\n do {\n const stat = tryStatSync(packageJsonPath.slice(0, -13));\n if (!stat.isDirectory()) {\n lastPath = packageJsonPath;\n packageJsonUrl = new URL(\n (isScoped ? '../../../../node_modules/' : '../../../node_modules/') +\n packageName +\n '/package.json',\n packageJsonUrl\n );\n packageJsonPath = fileURLToPath(packageJsonUrl);\n continue\n }\n\n // Package match.\n const packageConfig = getPackageConfig(packageJsonPath, specifier, base);\n if (packageConfig.exports !== undefined && packageConfig.exports !== null)\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n ).resolved\n if (packageSubpath === '.')\n return legacyMainResolve(packageJsonUrl, packageConfig, base)\n return new URL(packageSubpath, packageJsonUrl)\n // Cross-platform root check.\n } while (packageJsonPath.length !== lastPath.length)\n\n throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base))\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction isRelativeSpecifier(specifier) {\n if (specifier[0] === '.') {\n if (specifier.length === 1 || specifier[1] === '/') return true\n if (\n specifier[1] === '.' &&\n (specifier.length === 2 || specifier[2] === '/')\n ) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction shouldBeTreatedAsRelativeOrAbsolutePath(specifier) {\n if (specifier === '') return false\n if (specifier[0] === '/') return true\n return isRelativeSpecifier(specifier)\n}\n\n/**\n * The “Resolver Algorithm Specification” as detailed in the Node docs (which is\n * sync and slightly lower-level than `resolve`).\n *\n *\n *\n * @param {string} specifier\n * @param {URL} base\n * @param {Set} [conditions]\n * @returns {URL}\n */\nfunction moduleResolve(specifier, base, conditions) {\n // Order swapped from spec for minor perf gain.\n // Ok since relative URLs cannot parse as URLs.\n /** @type {URL} */\n let resolved;\n\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n resolved = new URL(specifier, base);\n } else if (specifier[0] === '#') {\n({resolved} = packageImportsResolve(specifier, base, conditions));\n } else {\n try {\n resolved = new URL(specifier);\n } catch {\n resolved = packageResolve(specifier, base, conditions);\n }\n }\n\n return finalizeResolution(resolved, base)\n}\n\n/**\n * @param {string} specifier\n * @param {{parentURL?: string, conditions?: string[]}} context\n * @returns {{url: string}}\n */\nfunction defaultResolve(specifier, context = {}) {\n const {parentURL} = context;\n /** @type {URL} */\n let parsed;\n\n try {\n parsed = new URL(specifier);\n if (parsed.protocol === 'data:') {\n return {url: specifier}\n }\n } catch {}\n\n if (parsed && parsed.protocol === 'node:') return {url: specifier}\n if (parsed && parsed.protocol !== 'file:' && parsed.protocol !== 'data:')\n throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed)\n\n if (listOfBuiltins.includes(specifier)) {\n return {url: 'node:' + specifier}\n }\n\n if (parentURL.startsWith('data:')) {\n // This is gonna blow up, we want the error\n new URL(specifier, parentURL);\n }\n\n const conditions = getConditionsSet(context.conditions);\n let url = moduleResolve(specifier, new URL(parentURL), conditions);\n\n const urlPath = fileURLToPath(url);\n const real = realpathSync(urlPath);\n const old = url;\n url = pathToFileURL(real + (urlPath.endsWith(path.sep) ? '/' : ''));\n url.search = old.search;\n url.hash = old.hash;\n\n return {url: `${url}`}\n}\n\n/**\n * Provides a module-relative resolution function scoped to each module,\n * returning the URL string.\n * `import.meta.resolve` also accepts a second argument which is the parent\n * module from which to resolve from.\n *\n * This function is asynchronous because the ES module resolver in Node.js is\n * allowed to be asynchronous.\n *\n * @param {string} specifier The module specifier to resolve relative to parent.\n * @param {string} parent The absolute parent module URL to resolve from.\n * You should pass `import.meta.url` or something else\n * @returns {Promise}\n */\nasync function resolve(specifier, parent) {\n if (!parent) {\n throw new Error(\n 'Please pass `parent`: `import-meta-resolve` cannot ponyfill that'\n )\n }\n\n try {\n return defaultResolve(specifier, {parentURL: parent}).url\n } catch (error) {\n return error.code === 'ERR_UNSUPPORTED_DIR_IMPORT'\n ? error.url\n : Promise.reject(error)\n }\n}\n\nexport { moduleResolve, resolve };\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/core/node_modules/convert-source-map/LICENSE b/node_modules/@babel/core/node_modules/convert-source-map/LICENSE new file mode 100755 index 0000000..41702c5 --- /dev/null +++ b/node_modules/@babel/core/node_modules/convert-source-map/LICENSE @@ -0,0 +1,23 @@ +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/node_modules/@babel/core/node_modules/convert-source-map/README.md b/node_modules/@babel/core/node_modules/convert-source-map/README.md new file mode 100755 index 0000000..7a3a945 --- /dev/null +++ b/node_modules/@babel/core/node_modules/convert-source-map/README.md @@ -0,0 +1,123 @@ +# convert-source-map [![Build Status][ci-image]][ci-url] + +Converts a source-map from/to different formats and allows adding/changing properties. + +```js +var convert = require('convert-source-map'); + +var json = convert + .fromComment('//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQvZm9vLm1pbi5qcyIsInNvdXJjZXMiOlsic3JjL2Zvby5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZVJvb3QiOiIvIn0=') + .toJSON(); + +var modified = convert + .fromComment('//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQvZm9vLm1pbi5qcyIsInNvdXJjZXMiOlsic3JjL2Zvby5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZVJvb3QiOiIvIn0=') + .setProperty('sources', [ 'SRC/FOO.JS' ]) + .toJSON(); + +console.log(json); +console.log(modified); +``` + +```json +{"version":3,"file":"build/foo.min.js","sources":["src/foo.js"],"names":[],"mappings":"AAAA","sourceRoot":"/"} +{"version":3,"file":"build/foo.min.js","sources":["SRC/FOO.JS"],"names":[],"mappings":"AAAA","sourceRoot":"/"} +``` + +## API + +### fromObject(obj) + +Returns source map converter from given object. + +### fromJSON(json) + +Returns source map converter from given json string. + +### fromBase64(base64) + +Returns source map converter from given base64 encoded json string. + +### fromComment(comment) + +Returns source map converter from given base64 encoded json string prefixed with `//# sourceMappingURL=...`. + +### fromMapFileComment(comment, mapFileDir) + +Returns source map converter from given `filename` by parsing `//# sourceMappingURL=filename`. + +`filename` must point to a file that is found inside the `mapFileDir`. Most tools store this file right next to the +generated file, i.e. the one containing the source map. + +### fromSource(source) + +Finds last sourcemap comment in file and returns source map converter or returns null if no source map comment was found. + +### fromMapFileSource(source, mapFileDir) + +Finds last sourcemap comment in file and returns source map converter or returns null if no source map comment was +found. + +The sourcemap will be read from the map file found by parsing `# sourceMappingURL=file` comment. For more info see +fromMapFileComment. + +### toObject() + +Returns a copy of the underlying source map. + +### toJSON([space]) + +Converts source map to json string. If `space` is given (optional), this will be passed to +[JSON.stringify](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify) when the +JSON string is generated. + +### toBase64() + +Converts source map to base64 encoded json string. + +### toComment([options]) + +Converts source map to an inline comment that can be appended to the source-file. + +By default, the comment is formatted like: `//# sourceMappingURL=...`, which you would +normally see in a JS source file. + +When `options.multiline == true`, the comment is formatted like: `/*# sourceMappingURL=... */`, which you would find in a CSS source file. + +### addProperty(key, value) + +Adds given property to the source map. Throws an error if property already exists. + +### setProperty(key, value) + +Sets given property to the source map. If property doesn't exist it is added, otherwise its value is updated. + +### getProperty(key) + +Gets given property of the source map. + +### removeComments(src) + +Returns `src` with all source map comments removed + +### removeMapFileComments(src) + +Returns `src` with all source map comments pointing to map files removed. + +### commentRegex + +Provides __a fresh__ RegExp each time it is accessed. Can be used to find source map comments. + +### mapFileCommentRegex + +Provides __a fresh__ RegExp each time it is accessed. Can be used to find source map comments pointing to map files. + +### generateMapFileComment(file, [options]) + +Returns a comment that links to an external source map via `file`. + +By default, the comment is formatted like: `//# sourceMappingURL=...`, which you would normally see in a JS source file. + +When `options.multiline == true`, the comment is formatted like: `/*# sourceMappingURL=... */`, which you would find in a CSS source file. + +[ci-url]: https://github.com/thlorenz/convert-source-map/actions?query=workflow:ci +[ci-image]: https://img.shields.io/github/workflow/status/thlorenz/convert-source-map/CI?style=flat-square diff --git a/node_modules/@babel/core/node_modules/convert-source-map/index.js b/node_modules/@babel/core/node_modules/convert-source-map/index.js new file mode 100755 index 0000000..dc602d7 --- /dev/null +++ b/node_modules/@babel/core/node_modules/convert-source-map/index.js @@ -0,0 +1,179 @@ +'use strict'; +var fs = require('fs'); +var path = require('path'); + +Object.defineProperty(exports, 'commentRegex', { + get: function getCommentRegex () { + return /^\s*\/(?:\/|\*)[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/mg; + } +}); + +Object.defineProperty(exports, 'mapFileCommentRegex', { + get: function getMapFileCommentRegex () { + // Matches sourceMappingURL in either // or /* comment styles. + return /(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"`]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^\*]+?)[ \t]*(?:\*\/){1}[ \t]*$)/mg; + } +}); + +var decodeBase64; +if (typeof Buffer !== 'undefined') { + if (typeof Buffer.from === 'function') { + decodeBase64 = decodeBase64WithBufferFrom; + } else { + decodeBase64 = decodeBase64WithNewBuffer; + } +} else { + decodeBase64 = decodeBase64WithAtob; +} + +function decodeBase64WithBufferFrom(base64) { + return Buffer.from(base64, 'base64').toString(); +} + +function decodeBase64WithNewBuffer(base64) { + if (typeof value === 'number') { + throw new TypeError('The value to decode must not be of type number.'); + } + return new Buffer(base64, 'base64').toString(); +} + +function decodeBase64WithAtob(base64) { + return decodeURIComponent(escape(atob(base64))); +} + +function stripComment(sm) { + return sm.split(',').pop(); +} + +function readFromFileMap(sm, dir) { + // NOTE: this will only work on the server since it attempts to read the map file + + var r = exports.mapFileCommentRegex.exec(sm); + + // for some odd reason //# .. captures in 1 and /* .. */ in 2 + var filename = r[1] || r[2]; + var filepath = path.resolve(dir, filename); + + try { + return fs.readFileSync(filepath, 'utf8'); + } catch (e) { + throw new Error('An error occurred while trying to read the map file at ' + filepath + '\n' + e); + } +} + +function Converter (sm, opts) { + opts = opts || {}; + + if (opts.isFileComment) sm = readFromFileMap(sm, opts.commentFileDir); + if (opts.hasComment) sm = stripComment(sm); + if (opts.isEncoded) sm = decodeBase64(sm); + if (opts.isJSON || opts.isEncoded) sm = JSON.parse(sm); + + this.sourcemap = sm; +} + +Converter.prototype.toJSON = function (space) { + return JSON.stringify(this.sourcemap, null, space); +}; + +if (typeof Buffer !== 'undefined') { + if (typeof Buffer.from === 'function') { + Converter.prototype.toBase64 = encodeBase64WithBufferFrom; + } else { + Converter.prototype.toBase64 = encodeBase64WithNewBuffer; + } +} else { + Converter.prototype.toBase64 = encodeBase64WithBtoa; +} + +function encodeBase64WithBufferFrom() { + var json = this.toJSON(); + return Buffer.from(json, 'utf8').toString('base64'); +} + +function encodeBase64WithNewBuffer() { + var json = this.toJSON(); + if (typeof json === 'number') { + throw new TypeError('The json to encode must not be of type number.'); + } + return new Buffer(json, 'utf8').toString('base64'); +} + +function encodeBase64WithBtoa() { + var json = this.toJSON(); + return btoa(unescape(encodeURIComponent(json))); +} + +Converter.prototype.toComment = function (options) { + var base64 = this.toBase64(); + var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; + return options && options.multiline ? '/*# ' + data + ' */' : '//# ' + data; +}; + +// returns copy instead of original +Converter.prototype.toObject = function () { + return JSON.parse(this.toJSON()); +}; + +Converter.prototype.addProperty = function (key, value) { + if (this.sourcemap.hasOwnProperty(key)) throw new Error('property "' + key + '" already exists on the sourcemap, use set property instead'); + return this.setProperty(key, value); +}; + +Converter.prototype.setProperty = function (key, value) { + this.sourcemap[key] = value; + return this; +}; + +Converter.prototype.getProperty = function (key) { + return this.sourcemap[key]; +}; + +exports.fromObject = function (obj) { + return new Converter(obj); +}; + +exports.fromJSON = function (json) { + return new Converter(json, { isJSON: true }); +}; + +exports.fromBase64 = function (base64) { + return new Converter(base64, { isEncoded: true }); +}; + +exports.fromComment = function (comment) { + comment = comment + .replace(/^\/\*/g, '//') + .replace(/\*\/$/g, ''); + + return new Converter(comment, { isEncoded: true, hasComment: true }); +}; + +exports.fromMapFileComment = function (comment, dir) { + return new Converter(comment, { commentFileDir: dir, isFileComment: true, isJSON: true }); +}; + +// Finds last sourcemap comment in file or returns null if none was found +exports.fromSource = function (content) { + var m = content.match(exports.commentRegex); + return m ? exports.fromComment(m.pop()) : null; +}; + +// Finds last sourcemap comment in file or returns null if none was found +exports.fromMapFileSource = function (content, dir) { + var m = content.match(exports.mapFileCommentRegex); + return m ? exports.fromMapFileComment(m.pop(), dir) : null; +}; + +exports.removeComments = function (src) { + return src.replace(exports.commentRegex, ''); +}; + +exports.removeMapFileComments = function (src) { + return src.replace(exports.mapFileCommentRegex, ''); +}; + +exports.generateMapFileComment = function (file, options) { + var data = 'sourceMappingURL=' + file; + return options && options.multiline ? '/*# ' + data + ' */' : '//# ' + data; +}; diff --git a/node_modules/@babel/core/node_modules/convert-source-map/package.json b/node_modules/@babel/core/node_modules/convert-source-map/package.json new file mode 100755 index 0000000..0d796ca --- /dev/null +++ b/node_modules/@babel/core/node_modules/convert-source-map/package.json @@ -0,0 +1,41 @@ +{ + "name": "convert-source-map", + "version": "1.9.0", + "description": "Converts a source-map from/to different formats and allows adding/changing properties.", + "main": "index.js", + "scripts": { + "test": "tap test/*.js --color" + }, + "repository": { + "type": "git", + "url": "git://github.com/thlorenz/convert-source-map.git" + }, + "homepage": "https://github.com/thlorenz/convert-source-map", + "devDependencies": { + "inline-source-map": "~0.6.2", + "tap": "~9.0.0" + }, + "keywords": [ + "convert", + "sourcemap", + "source", + "map", + "browser", + "debug" + ], + "author": { + "name": "Thorsten Lorenz", + "email": "thlorenz@gmx.de", + "url": "http://thlorenz.com" + }, + "license": "MIT", + "engine": { + "node": ">=0.6" + }, + "files": [ + "index.js" + ], + "browser": { + "fs": false + } +} diff --git a/node_modules/@babel/core/node_modules/debug/LICENSE b/node_modules/@babel/core/node_modules/debug/LICENSE new file mode 100755 index 0000000..1a9820e --- /dev/null +++ b/node_modules/@babel/core/node_modules/debug/LICENSE @@ -0,0 +1,20 @@ +(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/node_modules/@babel/core/node_modules/debug/README.md b/node_modules/@babel/core/node_modules/debug/README.md new file mode 100755 index 0000000..e9c3e04 --- /dev/null +++ b/node_modules/@babel/core/node_modules/debug/README.md @@ -0,0 +1,481 @@ +# 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/node_modules/@babel/core/node_modules/debug/package.json b/node_modules/@babel/core/node_modules/debug/package.json new file mode 100755 index 0000000..3bcdc24 --- /dev/null +++ b/node_modules/@babel/core/node_modules/debug/package.json @@ -0,0 +1,59 @@ +{ + "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/node_modules/@babel/core/node_modules/debug/src/browser.js b/node_modules/@babel/core/node_modules/debug/src/browser.js new file mode 100755 index 0000000..cd0fc35 --- /dev/null +++ b/node_modules/@babel/core/node_modules/debug/src/browser.js @@ -0,0 +1,269 @@ +/* eslint-env browser */ + +/** + * This is the web browser implementation of `debug()`. + */ + +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = localstorage(); +exports.destroy = (() => { + let warned = false; + + return () => { + if (!warned) { + warned = true; + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + }; +})(); + +/** + * Colors. + */ + +exports.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +// eslint-disable-next-line complexity +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { + return true; + } + + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); + + if (!this.useColors) { + return; + } + + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); + + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + +/** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ +exports.log = console.debug || console.log || (() => {}); + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ +function load() { + let r; + try { + r = exports.storage.getItem('debug'); + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } +}; diff --git a/node_modules/@babel/core/node_modules/debug/src/common.js b/node_modules/@babel/core/node_modules/debug/src/common.js new file mode 100755 index 0000000..e3291b2 --- /dev/null +++ b/node_modules/@babel/core/node_modules/debug/src/common.js @@ -0,0 +1,274 @@ + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ + +function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require('ms'); + createDebug.destroy = destroy; + + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); + + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = []; + createDebug.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; + + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; + + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } + + const self = debug; + + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } + + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%'; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const val = args[index]; + match = formatter.call(self, val); + + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); + + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + + return enabledCache; + }, + set: v => { + enableOverride = v; + } + }); + + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + + return debug; + } + + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + + createDebug.names = []; + createDebug.skips = []; + + let i; + const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + const len = split.length; + + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue; + } + + namespaces = split[i].replace(/\*/g, '.*?'); + + if (namespaces[0] === '-') { + createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')); + } + } + } + + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) + ].join(','); + createDebug.enable(''); + return namespaces; + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + if (name[name.length - 1] === '*') { + return true; + } + + let i; + let len; + + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + + return false; + } + + /** + * Convert regexp to namespace + * + * @param {RegExp} regxep + * @return {String} namespace + * @api private + */ + function toNamespace(regexp) { + return regexp.toString() + .substring(2, regexp.toString().length - 2) + .replace(/\.\*\?$/, '*'); + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + + createDebug.enable(createDebug.load()); + + return createDebug; +} + +module.exports = setup; diff --git a/node_modules/@babel/core/node_modules/debug/src/index.js b/node_modules/@babel/core/node_modules/debug/src/index.js new file mode 100755 index 0000000..bf4c57f --- /dev/null +++ b/node_modules/@babel/core/node_modules/debug/src/index.js @@ -0,0 +1,10 @@ +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ + +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + module.exports = require('./browser.js'); +} else { + module.exports = require('./node.js'); +} diff --git a/node_modules/@babel/core/node_modules/debug/src/node.js b/node_modules/@babel/core/node_modules/debug/src/node.js new file mode 100755 index 0000000..79bc085 --- /dev/null +++ b/node_modules/@babel/core/node_modules/debug/src/node.js @@ -0,0 +1,263 @@ +/** + * Module dependencies. + */ + +const tty = require('tty'); +const util = require('util'); + +/** + * This is the Node.js implementation of `debug()`. + */ + +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' +); + +/** + * Colors. + */ + +exports.colors = [6, 2, 3, 4, 5, 1]; + +try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = require('supports-color'); + + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } +} catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. +} + +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(key => { + return /^debug_/i.test(key); +}).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } + + obj[prop] = val; + return obj; +}, {}); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); +} + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + const {namespace: name, useColors} = this; + + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } +} + +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; +} + +/** + * Invokes `util.format()` with the specified arguments and writes to stderr. + */ + +function log(...args) { + return process.stderr.write(util.format(...args) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init(debug) { + debug.inspectOpts = {}; + + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' '); +}; + +/** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ + +formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; diff --git a/node_modules/@babel/core/node_modules/ms/index.js b/node_modules/@babel/core/node_modules/ms/index.js new file mode 100755 index 0000000..c4498bc --- /dev/null +++ b/node_modules/@babel/core/node_modules/ms/index.js @@ -0,0 +1,162 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} diff --git a/node_modules/@babel/core/node_modules/ms/license.md b/node_modules/@babel/core/node_modules/ms/license.md new file mode 100755 index 0000000..69b6125 --- /dev/null +++ b/node_modules/@babel/core/node_modules/ms/license.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Zeit, 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/node_modules/@babel/core/node_modules/ms/package.json b/node_modules/@babel/core/node_modules/ms/package.json new file mode 100755 index 0000000..eea666e --- /dev/null +++ b/node_modules/@babel/core/node_modules/ms/package.json @@ -0,0 +1,37 @@ +{ + "name": "ms", + "version": "2.1.2", + "description": "Tiny millisecond conversion utility", + "repository": "zeit/ms", + "main": "./index", + "files": [ + "index.js" + ], + "scripts": { + "precommit": "lint-staged", + "lint": "eslint lib/* bin/*", + "test": "mocha tests.js" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "license": "MIT", + "devDependencies": { + "eslint": "4.12.1", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1" + } +} diff --git a/node_modules/@babel/core/node_modules/ms/readme.md b/node_modules/@babel/core/node_modules/ms/readme.md new file mode 100755 index 0000000..9a1996b --- /dev/null +++ b/node_modules/@babel/core/node_modules/ms/readme.md @@ -0,0 +1,60 @@ +# ms + +[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms) +[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/zeit) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +ms('-3 days') // -259200000 +ms('-1h') // -3600000 +ms('-200') // -200 +``` + +### Convert from Milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(-3 * 60000) // "-3m" +ms(ms('10 hours')) // "10h" +``` + +### Time Format Written-Out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(-3 * 60000, { long: true }) // "-3 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [Node.js](https://nodejs.org) and in the browser +- If a number is supplied to `ms`, a string with a unit is returned +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) +- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned + +## Related Packages + +- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. + +## Caught a Bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git a/node_modules/@babel/core/package.json b/node_modules/@babel/core/package.json new file mode 100755 index 0000000..b857c31 --- /dev/null +++ b/node_modules/@babel/core/package.json @@ -0,0 +1,80 @@ +{ + "name": "@babel/core", + "version": "7.20.7", + "description": "Babel compiler core.", + "main": "./lib/index.js", + "author": "The Babel Team (https://babel.dev/team)", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-core" + }, + "homepage": "https://babel.dev/docs/en/next/babel-core", + "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen", + "keywords": [ + "6to5", + "babel", + "classes", + "const", + "es6", + "harmony", + "let", + "modules", + "transpile", + "transpiler", + "var", + "babel-core", + "compiler" + ], + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + }, + "browser": { + "./lib/config/files/index.js": "./lib/config/files/index-browser.js", + "./lib/config/resolve-targets.js": "./lib/config/resolve-targets-browser.js", + "./lib/transform-file.js": "./lib/transform-file-browser.js", + "./src/config/files/index.ts": "./src/config/files/index-browser.ts", + "./src/config/resolve-targets.ts": "./src/config/resolve-targets-browser.ts", + "./src/transform-file.ts": "./src/transform-file-browser.ts" + }, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.7", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "devDependencies": { + "@babel/helper-transform-fixture-test-runner": "^7.19.4", + "@babel/plugin-syntax-flow": "^7.18.6", + "@babel/plugin-transform-flow-strip-types": "^7.19.0", + "@babel/plugin-transform-modules-commonjs": "^7.20.7", + "@babel/preset-env": "^7.20.2", + "@jridgewell/trace-mapping": "^0.3.8", + "@types/convert-source-map": "^1.5.1", + "@types/debug": "^4.1.0", + "@types/gensync": "^1.0.0", + "@types/resolve": "^1.3.2", + "@types/semver": "^5.4.0", + "rimraf": "^3.0.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/node_modules/@babel/core/src/config/files/index-browser.ts b/node_modules/@babel/core/src/config/files/index-browser.ts new file mode 100755 index 0000000..08f91f6 --- /dev/null +++ b/node_modules/@babel/core/src/config/files/index-browser.ts @@ -0,0 +1,109 @@ +import type { Handler } from "gensync"; + +import type { + ConfigFile, + IgnoreFile, + RelativeConfig, + FilePackageData, +} from "./types"; + +import type { CallerMetadata } from "../validation/options"; + +export type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData }; + +export function findConfigUpwards( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + rootDir: string, +): string | null { + return null; +} + +// eslint-disable-next-line require-yield +export function* findPackageData(filepath: string): Handler { + return { + filepath, + directories: [], + pkg: null, + isPackage: false, + }; +} + +// eslint-disable-next-line require-yield +export function* findRelativeConfig( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + pkgData: FilePackageData, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + envName: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + caller: CallerMetadata | undefined, +): Handler { + return { config: null, ignore: null }; +} + +// eslint-disable-next-line require-yield +export function* findRootConfig( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + dirname: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + envName: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + caller: CallerMetadata | undefined, +): Handler { + return null; +} + +// eslint-disable-next-line require-yield +export function* loadConfig( + name: string, + dirname: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + envName: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + caller: CallerMetadata | undefined, +): Handler { + throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`); +} + +// eslint-disable-next-line require-yield +export function* resolveShowConfigPath( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + dirname: string, +): Handler { + return null; +} + +export const ROOT_CONFIG_FILENAMES: string[] = []; + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export function resolvePlugin(name: string, dirname: string): string | null { + return null; +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export function resolvePreset(name: string, dirname: string): string | null { + return null; +} + +export function loadPlugin( + name: string, + dirname: string, +): Handler<{ + filepath: string; + value: unknown; +}> { + throw new Error( + `Cannot load plugin ${name} relative to ${dirname} in a browser`, + ); +} + +export function loadPreset( + name: string, + dirname: string, +): Handler<{ + filepath: string; + value: unknown; +}> { + throw new Error( + `Cannot load preset ${name} relative to ${dirname} in a browser`, + ); +} diff --git a/node_modules/@babel/core/src/config/files/index.ts b/node_modules/@babel/core/src/config/files/index.ts new file mode 100755 index 0000000..31e8560 --- /dev/null +++ b/node_modules/@babel/core/src/config/files/index.ts @@ -0,0 +1,30 @@ +type indexBrowserType = typeof import("./index-browser"); +type indexType = typeof import("./index"); + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of index-browser, since this file may be replaced at bundle time with index-browser. +({} as any as indexBrowserType as indexType); + +export { findPackageData } from "./package"; + +export { + findConfigUpwards, + findRelativeConfig, + findRootConfig, + loadConfig, + resolveShowConfigPath, + ROOT_CONFIG_FILENAMES, +} from "./configuration"; +export type { + ConfigFile, + IgnoreFile, + RelativeConfig, + FilePackageData, +} from "./types"; +export { loadPlugin, loadPreset } from "./plugins"; + +import gensync from "gensync"; +import * as plugins from "./plugins"; + +export const resolvePlugin = gensync(plugins.resolvePlugin).sync; +export const resolvePreset = gensync(plugins.resolvePreset).sync; diff --git a/node_modules/@babel/core/src/config/resolve-targets-browser.ts b/node_modules/@babel/core/src/config/resolve-targets-browser.ts new file mode 100755 index 0000000..60745dd --- /dev/null +++ b/node_modules/@babel/core/src/config/resolve-targets-browser.ts @@ -0,0 +1,40 @@ +import type { ValidatedOptions } from "./validation/options"; +import getTargets, { + type InputTargets, +} from "@babel/helper-compilation-targets"; + +import type { Targets } from "@babel/helper-compilation-targets"; + +export function resolveBrowserslistConfigFile( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + browserslistConfigFile: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + configFilePath: string, +): string | void { + return undefined; +} + +export function resolveTargets( + options: ValidatedOptions, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + root: string, +): Targets { + const optTargets = options.targets; + let targets: InputTargets; + + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { browsers: optTargets }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = { ...optTargets, esmodules: "intersect" }; + } else { + // https://github.com/microsoft/TypeScript/issues/17002 + targets = optTargets as InputTargets; + } + } + + return getTargets(targets, { + ignoreBrowserslistConfig: true, + browserslistEnv: options.browserslistEnv, + }); +} diff --git a/node_modules/@babel/core/src/config/resolve-targets.ts b/node_modules/@babel/core/src/config/resolve-targets.ts new file mode 100755 index 0000000..a7d9a79 --- /dev/null +++ b/node_modules/@babel/core/src/config/resolve-targets.ts @@ -0,0 +1,56 @@ +type browserType = typeof import("./resolve-targets-browser"); +type nodeType = typeof import("./resolve-targets"); + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of index-browser, since this file may be replaced at bundle time with index-browser. +({} as any as browserType as nodeType); + +import type { ValidatedOptions } from "./validation/options"; +import path from "path"; +import getTargets, { + type InputTargets, +} from "@babel/helper-compilation-targets"; + +import type { Targets } from "@babel/helper-compilation-targets"; + +export function resolveBrowserslistConfigFile( + browserslistConfigFile: string, + configFileDir: string, +): string | undefined { + return path.resolve(configFileDir, browserslistConfigFile); +} + +export function resolveTargets( + options: ValidatedOptions, + root: string, +): Targets { + const optTargets = options.targets; + let targets: InputTargets; + + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { browsers: optTargets }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = { ...optTargets, esmodules: "intersect" }; + } else { + // https://github.com/microsoft/TypeScript/issues/17002 + targets = optTargets as InputTargets; + } + } + + const { browserslistConfigFile } = options; + let configFile; + let ignoreBrowserslistConfig = false; + if (typeof browserslistConfigFile === "string") { + configFile = browserslistConfigFile; + } else { + ignoreBrowserslistConfig = browserslistConfigFile === false; + } + + return getTargets(targets, { + ignoreBrowserslistConfig, + configFile, + configPath: root, + browserslistEnv: options.browserslistEnv, + }); +} diff --git a/node_modules/@babel/core/src/transform-file-browser.ts b/node_modules/@babel/core/src/transform-file-browser.ts new file mode 100755 index 0000000..f316cb4 --- /dev/null +++ b/node_modules/@babel/core/src/transform-file-browser.ts @@ -0,0 +1,31 @@ +// duplicated from transform-file so we do not have to import anything here +type TransformFile = { + (filename: string, callback: (error: Error, file: null) => void): void; + ( + filename: string, + opts: any, + callback: (error: Error, file: null) => void, + ): void; +}; + +export const transformFile: TransformFile = function transformFile( + filename, + opts, + callback?: (error: Error, file: null) => void, +) { + if (typeof opts === "function") { + callback = opts; + } + + callback(new Error("Transforming files is not supported in browsers"), null); +}; + +export function transformFileSync(): never { + throw new Error("Transforming files is not supported in browsers"); +} + +export function transformFileAsync() { + return Promise.reject( + new Error("Transforming files is not supported in browsers"), + ); +} diff --git a/node_modules/@babel/core/src/transform-file.ts b/node_modules/@babel/core/src/transform-file.ts new file mode 100755 index 0000000..c493425 --- /dev/null +++ b/node_modules/@babel/core/src/transform-file.ts @@ -0,0 +1,55 @@ +import gensync, { type Handler } from "gensync"; + +import loadConfig from "./config"; +import type { InputOptions, ResolvedConfig } from "./config"; +import { run } from "./transformation"; +import type { FileResult, FileResultCallback } from "./transformation"; +import * as fs from "./gensync-utils/fs"; + +type transformFileBrowserType = typeof import("./transform-file-browser"); +type transformFileType = typeof import("./transform-file"); + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of transform-file-browser, since this file may be replaced at bundle time with +// transform-file-browser. +({} as any as transformFileBrowserType as transformFileType); + +const transformFileRunner = gensync(function* ( + filename: string, + opts?: InputOptions, +): Handler { + const options = { ...opts, filename }; + + const config: ResolvedConfig | null = yield* loadConfig(options); + if (config === null) return null; + + const code = yield* fs.readFile(filename, "utf8"); + return yield* run(config, code); +}); + +// @ts-expect-error TS doesn't detect that this signature is compatible +export function transformFile( + filename: string, + callback: FileResultCallback, +): void; +export function transformFile( + filename: string, + opts: InputOptions | undefined | null, + callback: FileResultCallback, +): void; +export function transformFile( + ...args: Parameters +) { + return transformFileRunner.errback(...args); +} + +export function transformFileSync( + ...args: Parameters +) { + return transformFileRunner.sync(...args); +} +export function transformFileAsync( + ...args: Parameters +) { + return transformFileRunner.async(...args); +} diff --git a/node_modules/@babel/generator/LICENSE b/node_modules/@babel/generator/LICENSE new file mode 100755 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/generator/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie 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/node_modules/@babel/generator/README.md b/node_modules/@babel/generator/README.md new file mode 100755 index 0000000..b760238 --- /dev/null +++ b/node_modules/@babel/generator/README.md @@ -0,0 +1,19 @@ +# @babel/generator + +> Turns an AST into code. + +See our website [@babel/generator](https://babeljs.io/docs/en/babel-generator) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20generator%22+is%3Aopen) associated with this package. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/generator +``` + +or using yarn: + +```sh +yarn add @babel/generator --dev +``` diff --git a/node_modules/@babel/generator/lib/buffer.js b/node_modules/@babel/generator/lib/buffer.js new file mode 100755 index 0000000..21393e2 --- /dev/null +++ b/node_modules/@babel/generator/lib/buffer.js @@ -0,0 +1,294 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +class Buffer { + constructor(map) { + this._map = null; + this._buf = ""; + this._str = ""; + this._appendCount = 0; + this._last = 0; + this._queue = []; + this._queueCursor = 0; + this._position = { + line: 1, + column: 0 + }; + this._sourcePosition = { + identifierName: undefined, + line: undefined, + column: undefined, + filename: undefined + }; + this._map = map; + this._allocQueue(); + } + _allocQueue() { + const queue = this._queue; + for (let i = 0; i < 16; i++) { + queue.push({ + char: 0, + repeat: 1, + line: undefined, + column: undefined, + identifierName: undefined, + filename: "" + }); + } + } + _pushQueue(char, repeat, line, column, identifierName, filename) { + const cursor = this._queueCursor; + if (cursor === this._queue.length) { + this._allocQueue(); + } + const item = this._queue[cursor]; + item.char = char; + item.repeat = repeat; + item.line = line; + item.column = column; + item.identifierName = identifierName; + item.filename = filename; + this._queueCursor++; + } + _popQueue() { + if (this._queueCursor === 0) { + throw new Error("Cannot pop from empty queue"); + } + return this._queue[--this._queueCursor]; + } + + get() { + this._flush(); + const map = this._map; + const result = { + code: (this._buf + this._str).trimRight(), + decodedMap: map == null ? void 0 : map.getDecoded(), + get map() { + const resultMap = map ? map.get() : null; + result.map = resultMap; + return resultMap; + }, + set map(value) { + Object.defineProperty(result, "map", { + value, + writable: true + }); + }, + get rawMappings() { + const mappings = map == null ? void 0 : map.getRawMappings(); + result.rawMappings = mappings; + return mappings; + }, + set rawMappings(value) { + Object.defineProperty(result, "rawMappings", { + value, + writable: true + }); + } + }; + return result; + } + + append(str, maybeNewline) { + this._flush(); + this._append(str, this._sourcePosition, maybeNewline); + } + appendChar(char) { + this._flush(); + this._appendChar(char, 1, this._sourcePosition); + } + + queue(char) { + if (char === 10) { + while (this._queueCursor !== 0) { + const char = this._queue[this._queueCursor - 1].char; + if (char !== 32 && char !== 9) { + break; + } + this._queueCursor--; + } + } + const sourcePosition = this._sourcePosition; + this._pushQueue(char, 1, sourcePosition.line, sourcePosition.column, sourcePosition.identifierName, sourcePosition.filename); + } + + queueIndentation(char, repeat) { + this._pushQueue(char, repeat, undefined, undefined, undefined, undefined); + } + _flush() { + const queueCursor = this._queueCursor; + const queue = this._queue; + for (let i = 0; i < queueCursor; i++) { + const item = queue[i]; + this._appendChar(item.char, item.repeat, item); + } + this._queueCursor = 0; + } + _appendChar(char, repeat, sourcePos) { + this._last = char; + this._str += repeat > 1 ? String.fromCharCode(char).repeat(repeat) : String.fromCharCode(char); + if (char !== 10) { + this._mark(sourcePos.line, sourcePos.column, sourcePos.identifierName, sourcePos.filename); + this._position.column += repeat; + } else { + this._position.line++; + this._position.column = 0; + } + } + _append(str, sourcePos, maybeNewline) { + const len = str.length; + const position = this._position; + this._last = str.charCodeAt(len - 1); + if (++this._appendCount > 4096) { + +this._str; + this._buf += this._str; + this._str = str; + this._appendCount = 0; + } else { + this._str += str; + } + if (!maybeNewline && !this._map) { + position.column += len; + return; + } + const { + column, + identifierName, + filename + } = sourcePos; + let line = sourcePos.line; + + let i = str.indexOf("\n"); + let last = 0; + + if (i !== 0) { + this._mark(line, column, identifierName, filename); + } + + while (i !== -1) { + position.line++; + position.column = 0; + last = i + 1; + + if (last < len) { + this._mark(++line, 0, identifierName, filename); + } + i = str.indexOf("\n", last); + } + position.column += len - last; + } + _mark(line, column, identifierName, filename) { + var _this$_map; + (_this$_map = this._map) == null ? void 0 : _this$_map.mark(this._position, line, column, identifierName, filename); + } + removeTrailingNewline() { + const queueCursor = this._queueCursor; + if (queueCursor !== 0 && this._queue[queueCursor - 1].char === 10) { + this._queueCursor--; + } + } + removeLastSemicolon() { + const queueCursor = this._queueCursor; + if (queueCursor !== 0 && this._queue[queueCursor - 1].char === 59) { + this._queueCursor--; + } + } + getLastChar() { + const queueCursor = this._queueCursor; + return queueCursor !== 0 ? this._queue[queueCursor - 1].char : this._last; + } + + getNewlineCount() { + const queueCursor = this._queueCursor; + let count = 0; + if (queueCursor === 0) return this._last === 10 ? 1 : 0; + for (let i = queueCursor - 1; i >= 0; i--) { + if (this._queue[i].char !== 10) { + break; + } + count++; + } + return count === queueCursor && this._last === 10 ? count + 1 : count; + } + + endsWithCharAndNewline() { + const queue = this._queue; + const queueCursor = this._queueCursor; + if (queueCursor !== 0) { + const lastCp = queue[queueCursor - 1].char; + if (lastCp !== 10) return; + if (queueCursor > 1) { + return queue[queueCursor - 2].char; + } else { + return this._last; + } + } + } + + hasContent() { + return this._queueCursor !== 0 || !!this._last; + } + + exactSource(loc, cb) { + if (!this._map) return cb(); + this.source("start", loc); + cb(); + this.source("end", loc); + } + + source(prop, loc) { + if (!this._map) return; + + this._normalizePosition(prop, loc, 0, 0); + } + sourceWithOffset(prop, loc, lineOffset, columnOffset) { + if (!this._map) return; + this._normalizePosition(prop, loc, lineOffset, columnOffset); + } + + withSource(prop, loc, cb) { + if (!this._map) return cb(); + this.source(prop, loc); + cb(); + } + _normalizePosition(prop, loc, lineOffset, columnOffset) { + const pos = loc[prop]; + const target = this._sourcePosition; + target.identifierName = prop === "start" && loc.identifierName || undefined; + if (pos) { + target.line = pos.line + lineOffset; + target.column = pos.column + columnOffset; + target.filename = loc.filename; + } + } + getCurrentColumn() { + const queue = this._queue; + const queueCursor = this._queueCursor; + let lastIndex = -1; + let len = 0; + for (let i = 0; i < queueCursor; i++) { + const item = queue[i]; + if (item.char === 10) { + lastIndex = len; + } + len += item.repeat; + } + return lastIndex === -1 ? this._position.column + len : len - 1 - lastIndex; + } + getCurrentLine() { + let count = 0; + const queue = this._queue; + for (let i = 0; i < this._queueCursor; i++) { + if (queue[i].char === 10) { + count++; + } + } + return this._position.line + count; + } +} +exports.default = Buffer; + +//# sourceMappingURL=buffer.js.map diff --git a/node_modules/@babel/generator/lib/buffer.js.map b/node_modules/@babel/generator/lib/buffer.js.map new file mode 100755 index 0000000..5f01393 --- /dev/null +++ b/node_modules/@babel/generator/lib/buffer.js.map @@ -0,0 +1 @@ +{"version":3,"names":["Buffer","constructor","map","_map","_buf","_str","_appendCount","_last","_queue","_queueCursor","_position","line","column","_sourcePosition","identifierName","undefined","filename","_allocQueue","queue","i","push","char","repeat","_pushQueue","cursor","length","item","_popQueue","Error","get","_flush","result","code","trimRight","decodedMap","getDecoded","resultMap","value","Object","defineProperty","writable","rawMappings","mappings","getRawMappings","append","str","maybeNewline","_append","appendChar","_appendChar","sourcePosition","queueIndentation","queueCursor","sourcePos","String","fromCharCode","_mark","len","position","charCodeAt","indexOf","last","mark","removeTrailingNewline","removeLastSemicolon","getLastChar","getNewlineCount","count","endsWithCharAndNewline","lastCp","hasContent","exactSource","loc","cb","source","prop","_normalizePosition","sourceWithOffset","lineOffset","columnOffset","withSource","pos","target","getCurrentColumn","lastIndex","getCurrentLine"],"sources":["../src/buffer.ts"],"sourcesContent":["import type SourceMap from \"./source-map\";\nimport * as charcodes from \"charcodes\";\n\nexport type Pos = {\n line: number;\n column: number;\n};\nexport type Loc = {\n start?: Pos;\n end?: Pos;\n identifierName?: string;\n filename?: string;\n};\ntype SourcePos = {\n identifierName: string | undefined;\n line: number | undefined;\n column: number | undefined;\n filename: string | undefined;\n};\n\ntype QueueItem = {\n char: number;\n repeat: number;\n line: number | undefined;\n column: number | undefined;\n identifierName: string | undefined;\n filename: string | undefined;\n};\n\nexport default class Buffer {\n constructor(map?: SourceMap | null) {\n this._map = map;\n\n this._allocQueue();\n }\n\n _map: SourceMap = null;\n _buf = \"\";\n _str = \"\";\n _appendCount = 0;\n _last = 0;\n _queue: QueueItem[] = [];\n _queueCursor = 0;\n\n _position = {\n line: 1,\n column: 0,\n };\n _sourcePosition: SourcePos = {\n identifierName: undefined,\n line: undefined,\n column: undefined,\n filename: undefined,\n };\n\n _allocQueue() {\n const queue = this._queue;\n\n for (let i = 0; i < 16; i++) {\n queue.push({\n char: 0,\n repeat: 1,\n line: undefined,\n column: undefined,\n identifierName: undefined,\n filename: \"\",\n });\n }\n }\n\n _pushQueue(\n char: number,\n repeat: number,\n line: number | undefined,\n column: number | undefined,\n identifierName: string | undefined,\n filename: string | undefined,\n ) {\n const cursor = this._queueCursor;\n if (cursor === this._queue.length) {\n this._allocQueue();\n }\n const item = this._queue[cursor];\n item.char = char;\n item.repeat = repeat;\n item.line = line;\n item.column = column;\n item.identifierName = identifierName;\n item.filename = filename;\n\n this._queueCursor++;\n }\n\n _popQueue(): QueueItem {\n if (this._queueCursor === 0) {\n throw new Error(\"Cannot pop from empty queue\");\n }\n return this._queue[--this._queueCursor];\n }\n\n /**\n * Get the final string output from the buffer, along with the sourcemap if one exists.\n */\n\n get() {\n this._flush();\n\n const map = this._map;\n const result = {\n // Whatever trim is used here should not execute a regex against the\n // source string since it may be arbitrarily large after all transformations\n code: (this._buf + this._str).trimRight(),\n // Decoded sourcemap is free to generate.\n decodedMap: map?.getDecoded(),\n\n // Encoding the sourcemap is moderately CPU expensive.\n get map() {\n const resultMap = map ? map.get() : null;\n result.map = resultMap;\n return resultMap;\n },\n set map(value) {\n Object.defineProperty(result, \"map\", { value, writable: true });\n },\n // Retrieving the raw mappings is very memory intensive.\n get rawMappings() {\n const mappings = map?.getRawMappings();\n result.rawMappings = mappings;\n return mappings;\n },\n set rawMappings(value) {\n Object.defineProperty(result, \"rawMappings\", { value, writable: true });\n },\n };\n\n return result;\n }\n\n /**\n * Add a string to the buffer that cannot be reverted.\n */\n\n append(str: string, maybeNewline: boolean): void {\n this._flush();\n\n this._append(str, this._sourcePosition, maybeNewline);\n }\n\n appendChar(char: number): void {\n this._flush();\n this._appendChar(char, 1, this._sourcePosition);\n }\n\n /**\n * Add a string to the buffer than can be reverted.\n */\n queue(char: number): void {\n // Drop trailing spaces when a newline is inserted.\n if (char === charcodes.lineFeed) {\n while (this._queueCursor !== 0) {\n const char = this._queue[this._queueCursor - 1].char;\n if (char !== charcodes.space && char !== charcodes.tab) {\n break;\n }\n\n this._queueCursor--;\n }\n }\n\n const sourcePosition = this._sourcePosition;\n this._pushQueue(\n char,\n 1,\n sourcePosition.line,\n sourcePosition.column,\n sourcePosition.identifierName,\n sourcePosition.filename,\n );\n }\n\n /**\n * Same as queue, but this indentation will never have a sourcmap marker.\n */\n queueIndentation(char: number, repeat: number): void {\n this._pushQueue(char, repeat, undefined, undefined, undefined, undefined);\n }\n\n _flush(): void {\n const queueCursor = this._queueCursor;\n const queue = this._queue;\n for (let i = 0; i < queueCursor; i++) {\n const item: QueueItem = queue[i];\n this._appendChar(item.char, item.repeat, item);\n }\n this._queueCursor = 0;\n }\n\n _appendChar(char: number, repeat: number, sourcePos: SourcePos): void {\n this._last = char;\n\n this._str +=\n repeat > 1\n ? String.fromCharCode(char).repeat(repeat)\n : String.fromCharCode(char);\n\n if (char !== charcodes.lineFeed) {\n this._mark(\n sourcePos.line,\n sourcePos.column,\n sourcePos.identifierName,\n sourcePos.filename,\n );\n this._position.column += repeat;\n } else {\n this._position.line++;\n this._position.column = 0;\n }\n }\n\n _append(str: string, sourcePos: SourcePos, maybeNewline: boolean): void {\n const len = str.length;\n const position = this._position;\n\n this._last = str.charCodeAt(len - 1);\n\n if (++this._appendCount > 4096) {\n +this._str; // Unexplainable huge performance boost. Ref: https://github.com/davidmarkclements/flatstr License: MIT\n this._buf += this._str;\n this._str = str;\n this._appendCount = 0;\n } else {\n this._str += str;\n }\n\n if (!maybeNewline && !this._map) {\n position.column += len;\n return;\n }\n\n const { column, identifierName, filename } = sourcePos;\n let line = sourcePos.line;\n\n // Search for newline chars. We search only for `\\n`, since both `\\r` and\n // `\\r\\n` are normalized to `\\n` during parse. We exclude `\\u2028` and\n // `\\u2029` for performance reasons, they're so uncommon that it's probably\n // ok. It's also unclear how other sourcemap utilities handle them...\n let i = str.indexOf(\"\\n\");\n let last = 0;\n\n // If the string starts with a newline char, then adding a mark is redundant.\n // This catches both \"no newlines\" and \"newline after several chars\".\n if (i !== 0) {\n this._mark(line, column, identifierName, filename);\n }\n\n // Now, find each reamining newline char in the string.\n while (i !== -1) {\n position.line++;\n position.column = 0;\n last = i + 1;\n\n // We mark the start of each line, which happens directly after this newline char\n // unless this is the last char.\n if (last < len) {\n this._mark(++line, 0, identifierName, filename);\n }\n i = str.indexOf(\"\\n\", last);\n }\n position.column += len - last;\n }\n\n _mark(\n line: number | undefined,\n column: number | undefined,\n identifierName: string | undefined,\n filename: string | undefined,\n ): void {\n this._map?.mark(this._position, line, column, identifierName, filename);\n }\n\n removeTrailingNewline(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.lineFeed\n ) {\n this._queueCursor--;\n }\n }\n\n removeLastSemicolon(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.semicolon\n ) {\n this._queueCursor--;\n }\n }\n\n getLastChar(): number {\n const queueCursor = this._queueCursor;\n return queueCursor !== 0 ? this._queue[queueCursor - 1].char : this._last;\n }\n\n /**\n * This will only detect at most 1 newline after a call to `flush()`,\n * but this has not been found so far, and an accurate count can be achieved if needed later.\n */\n getNewlineCount(): number {\n const queueCursor = this._queueCursor;\n let count = 0;\n if (queueCursor === 0) return this._last === charcodes.lineFeed ? 1 : 0;\n for (let i = queueCursor - 1; i >= 0; i--) {\n if (this._queue[i].char !== charcodes.lineFeed) {\n break;\n }\n count++;\n }\n return count === queueCursor && this._last === charcodes.lineFeed\n ? count + 1\n : count;\n }\n\n /**\n * check if current _last + queue ends with newline, return the character before newline\n *\n * @param {*} ch\n * @memberof Buffer\n */\n endsWithCharAndNewline(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n if (queueCursor !== 0) {\n // every element in queue is one-length whitespace string\n const lastCp = queue[queueCursor - 1].char;\n if (lastCp !== charcodes.lineFeed) return;\n if (queueCursor > 1) {\n return queue[queueCursor - 2].char;\n } else {\n return this._last;\n }\n }\n // We assume that everything being matched is at most a single token plus some whitespace,\n // which everything currently is, but otherwise we'd have to expand _last or check _buf.\n }\n\n hasContent(): boolean {\n return this._queueCursor !== 0 || !!this._last;\n }\n\n /**\n * Certain sourcemap usecases expect mappings to be more accurate than\n * Babel's generic sourcemap handling allows. For now, we special-case\n * identifiers to allow for the primary cases to work.\n * The goal of this line is to ensure that the map output from Babel will\n * have an exact range on identifiers in the output code. Without this\n * line, Babel would potentially include some number of trailing tokens\n * that are printed after the identifier, but before another location has\n * been assigned.\n * This allows tooling like Rollup and Webpack to more accurately perform\n * their own transformations. Most importantly, this allows the import/export\n * transformations performed by those tools to loose less information when\n * applying their own transformations on top of the code and map results\n * generated by Babel itself.\n *\n * The primary example of this is the snippet:\n *\n * import mod from \"mod\";\n * mod();\n *\n * With this line, there will be one mapping range over \"mod\" and another\n * over \"();\", where previously it would have been a single mapping.\n */\n exactSource(loc: Loc | undefined, cb: () => void) {\n if (!this._map) return cb();\n\n this.source(\"start\", loc);\n\n cb();\n\n this.source(\"end\", loc);\n }\n\n /**\n * Sets a given position as the current source location so generated code after this call\n * will be given this position in the sourcemap.\n */\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!this._map) return;\n\n // Since this is called extremely often, we re-use the same _sourcePosition\n // object for the whole lifetime of the buffer.\n this._normalizePosition(prop, loc, 0, 0);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n lineOffset: number,\n columnOffset: number,\n ): void {\n if (!this._map) return;\n\n this._normalizePosition(prop, loc, lineOffset, columnOffset);\n }\n\n /**\n * Call a callback with a specific source location\n */\n\n withSource(prop: \"start\" | \"end\", loc: Loc, cb: () => void): void {\n if (!this._map) return cb();\n\n this.source(prop, loc);\n\n cb();\n }\n\n _normalizePosition(\n prop: \"start\" | \"end\",\n loc: Loc,\n lineOffset: number,\n columnOffset: number,\n ) {\n const pos = loc[prop];\n const target = this._sourcePosition;\n\n target.identifierName =\n (prop === \"start\" && loc.identifierName) || undefined;\n if (pos) {\n target.line = pos.line + lineOffset;\n target.column = pos.column + columnOffset;\n target.filename = loc.filename;\n }\n }\n\n getCurrentColumn(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n\n let lastIndex = -1;\n let len = 0;\n for (let i = 0; i < queueCursor; i++) {\n const item = queue[i];\n if (item.char === charcodes.lineFeed) {\n lastIndex = len;\n }\n len += item.repeat;\n }\n\n return lastIndex === -1 ? this._position.column + len : len - 1 - lastIndex;\n }\n\n getCurrentLine(): number {\n let count = 0;\n\n const queue = this._queue;\n for (let i = 0; i < this._queueCursor; i++) {\n if (queue[i].char === charcodes.lineFeed) {\n count++;\n }\n }\n\n return this._position.line + count;\n }\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/base.js b/node_modules/@babel/generator/lib/generators/base.js new file mode 100755 index 0000000..cf6da0c --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/base.js @@ -0,0 +1,95 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BlockStatement = BlockStatement; +exports.Directive = Directive; +exports.DirectiveLiteral = DirectiveLiteral; +exports.File = File; +exports.InterpreterDirective = InterpreterDirective; +exports.Placeholder = Placeholder; +exports.Program = Program; +function File(node) { + if (node.program) { + this.print(node.program.interpreter, node); + } + this.print(node.program, node); +} +function Program(node) { + var _node$directives; + this.noIndentInnerCommentsHere(); + this.printInnerComments(); + const directivesLen = (_node$directives = node.directives) == null ? void 0 : _node$directives.length; + if (directivesLen) { + var _node$directives$trai; + const newline = node.body.length ? 2 : 1; + this.printSequence(node.directives, node, { + trailingCommentsLineOffset: newline + }); + if (!((_node$directives$trai = node.directives[directivesLen - 1].trailingComments) != null && _node$directives$trai.length)) { + this.newline(newline); + } + } + this.printSequence(node.body, node); +} +function BlockStatement(node) { + var _node$directives2; + this.tokenChar(123); + const directivesLen = (_node$directives2 = node.directives) == null ? void 0 : _node$directives2.length; + if (directivesLen) { + var _node$directives$trai2; + const newline = node.body.length ? 2 : 1; + this.printSequence(node.directives, node, { + indent: true, + trailingCommentsLineOffset: newline + }); + if (!((_node$directives$trai2 = node.directives[directivesLen - 1].trailingComments) != null && _node$directives$trai2.length)) { + this.newline(newline); + } + } + this.printSequence(node.body, node, { + indent: true + }); + this.sourceWithOffset("end", node.loc, 0, -1); + this.rightBrace(); +} +function Directive(node) { + this.print(node.value, node); + this.semicolon(); +} + +const unescapedSingleQuoteRE = /(?:^|[^\\])(?:\\\\)*'/; +const unescapedDoubleQuoteRE = /(?:^|[^\\])(?:\\\\)*"/; +function DirectiveLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.token(raw); + return; + } + const { + value + } = node; + + if (!unescapedDoubleQuoteRE.test(value)) { + this.token(`"${value}"`); + } else if (!unescapedSingleQuoteRE.test(value)) { + this.token(`'${value}'`); + } else { + throw new Error("Malformed AST: it is not possible to print a directive containing" + " both unescaped single and double quotes."); + } +} +function InterpreterDirective(node) { + this.token(`#!${node.value}`); + this.newline(1, true); +} +function Placeholder(node) { + this.token("%%"); + this.print(node.name); + this.token("%%"); + if (node.expectedNode === "Statement") { + this.semicolon(); + } +} + +//# sourceMappingURL=base.js.map diff --git a/node_modules/@babel/generator/lib/generators/base.js.map b/node_modules/@babel/generator/lib/generators/base.js.map new file mode 100755 index 0000000..62a2aa6 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/base.js.map @@ -0,0 +1 @@ +{"version":3,"names":["File","node","program","print","interpreter","Program","noIndentInnerCommentsHere","printInnerComments","directivesLen","directives","length","newline","body","printSequence","trailingCommentsLineOffset","trailingComments","BlockStatement","token","indent","sourceWithOffset","loc","rightBrace","Directive","value","semicolon","unescapedSingleQuoteRE","unescapedDoubleQuoteRE","DirectiveLiteral","raw","getPossibleRaw","format","minified","undefined","test","Error","InterpreterDirective","Placeholder","name","expectedNode"],"sources":["../../src/generators/base.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport type * as t from \"@babel/types\";\n\nexport function File(this: Printer, node: t.File) {\n if (node.program) {\n // Print this here to ensure that Program node 'leadingComments' still\n // get printed after the hashbang.\n this.print(node.program.interpreter, node);\n }\n\n this.print(node.program, node);\n}\n\nexport function Program(this: Printer, node: t.Program) {\n // An empty Program doesn't have any inner tokens, so\n // we must explicitly print its inner comments.\n this.noIndentInnerCommentsHere();\n this.printInnerComments();\n\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, node, {\n trailingCommentsLineOffset: newline,\n });\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n\n this.printSequence(node.body, node);\n}\n\nexport function BlockStatement(this: Printer, node: t.BlockStatement) {\n this.token(\"{\");\n\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, node, {\n indent: true,\n trailingCommentsLineOffset: newline,\n });\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n\n this.printSequence(node.body, node, { indent: true });\n\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n\n this.rightBrace();\n}\n\nexport function Directive(this: Printer, node: t.Directive) {\n this.print(node.value, node);\n this.semicolon();\n}\n\n// These regexes match an even number of \\ followed by a quote\nconst unescapedSingleQuoteRE = /(?:^|[^\\\\])(?:\\\\\\\\)*'/;\nconst unescapedDoubleQuoteRE = /(?:^|[^\\\\])(?:\\\\\\\\)*\"/;\n\nexport function DirectiveLiteral(this: Printer, node: t.DirectiveLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n\n const { value } = node;\n\n // NOTE: In directives we can't change escapings,\n // because they change the behavior.\n // e.g. \"us\\x65 strict\" (\\x65 is e) is not a \"use strict\" directive.\n\n if (!unescapedDoubleQuoteRE.test(value)) {\n this.token(`\"${value}\"`);\n } else if (!unescapedSingleQuoteRE.test(value)) {\n this.token(`'${value}'`);\n } else {\n throw new Error(\n \"Malformed AST: it is not possible to print a directive containing\" +\n \" both unescaped single and double quotes.\",\n );\n }\n}\n\nexport function InterpreterDirective(\n this: Printer,\n node: t.InterpreterDirective,\n) {\n this.token(`#!${node.value}`);\n this.newline(1, true);\n}\n\nexport function Placeholder(this: Printer, node: t.Placeholder) {\n this.token(\"%%\");\n this.print(node.name);\n this.token(\"%%\");\n\n if (node.expectedNode === \"Statement\") {\n this.semicolon();\n }\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/classes.js b/node_modules/@babel/generator/lib/generators/classes.js new file mode 100755 index 0000000..bd8f780 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/classes.js @@ -0,0 +1,186 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ClassAccessorProperty = ClassAccessorProperty; +exports.ClassBody = ClassBody; +exports.ClassExpression = exports.ClassDeclaration = ClassDeclaration; +exports.ClassMethod = ClassMethod; +exports.ClassPrivateMethod = ClassPrivateMethod; +exports.ClassPrivateProperty = ClassPrivateProperty; +exports.ClassProperty = ClassProperty; +exports.StaticBlock = StaticBlock; +exports._classMethodHead = _classMethodHead; +var _t = require("@babel/types"); +const { + isExportDefaultDeclaration, + isExportNamedDeclaration +} = _t; +function ClassDeclaration(node, parent) { + { + if (!this.format.decoratorsBeforeExport || !isExportDefaultDeclaration(parent) && !isExportNamedDeclaration(parent)) { + this.printJoin(node.decorators, node); + } + } + if (node.declare) { + this.word("declare"); + this.space(); + } + if (node.abstract) { + this.word("abstract"); + this.space(); + } + this.word("class"); + if (node.id) { + this.space(); + this.print(node.id, node); + } + this.print(node.typeParameters, node); + if (node.superClass) { + this.space(); + this.word("extends"); + this.space(); + this.print(node.superClass, node); + this.print(node.superTypeParameters, node); + } + if (node.implements) { + this.space(); + this.word("implements"); + this.space(); + this.printList(node.implements, node); + } + this.space(); + this.print(node.body, node); +} +function ClassBody(node) { + this.tokenChar(123); + if (node.body.length === 0) { + this.tokenChar(125); + } else { + this.newline(); + this.indent(); + this.printSequence(node.body, node); + this.dedent(); + if (!this.endsWith(10)) this.newline(); + this.sourceWithOffset("end", node.loc, 0, -1); + this.rightBrace(); + } +} +function ClassProperty(node) { + var _node$key$loc, _node$key$loc$end; + this.printJoin(node.decorators, node); + + const endLine = (_node$key$loc = node.key.loc) == null ? void 0 : (_node$key$loc$end = _node$key$loc.end) == null ? void 0 : _node$key$loc$end.line; + if (endLine) this.catchUp(endLine); + this.tsPrintClassMemberModifiers(node); + if (node.computed) { + this.tokenChar(91); + this.print(node.key, node); + this.tokenChar(93); + } else { + this._variance(node); + this.print(node.key, node); + } + + if (node.optional) { + this.tokenChar(63); + } + if (node.definite) { + this.tokenChar(33); + } + this.print(node.typeAnnotation, node); + if (node.value) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.value, node); + } + this.semicolon(); +} +function ClassAccessorProperty(node) { + var _node$key$loc2, _node$key$loc2$end; + this.printJoin(node.decorators, node); + + const endLine = (_node$key$loc2 = node.key.loc) == null ? void 0 : (_node$key$loc2$end = _node$key$loc2.end) == null ? void 0 : _node$key$loc2$end.line; + if (endLine) this.catchUp(endLine); + + this.tsPrintClassMemberModifiers(node); + this.word("accessor", true); + this.space(); + if (node.computed) { + this.tokenChar(91); + this.print(node.key, node); + this.tokenChar(93); + } else { + this._variance(node); + this.print(node.key, node); + } + + if (node.optional) { + this.tokenChar(63); + } + if (node.definite) { + this.tokenChar(33); + } + this.print(node.typeAnnotation, node); + if (node.value) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.value, node); + } + this.semicolon(); +} +function ClassPrivateProperty(node) { + this.printJoin(node.decorators, node); + if (node.static) { + this.word("static"); + this.space(); + } + this.print(node.key, node); + this.print(node.typeAnnotation, node); + if (node.value) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.value, node); + } + this.semicolon(); +} +function ClassMethod(node) { + this._classMethodHead(node); + this.space(); + this.print(node.body, node); +} +function ClassPrivateMethod(node) { + this._classMethodHead(node); + this.space(); + this.print(node.body, node); +} +function _classMethodHead(node) { + var _node$key$loc3, _node$key$loc3$end; + this.printJoin(node.decorators, node); + + const endLine = (_node$key$loc3 = node.key.loc) == null ? void 0 : (_node$key$loc3$end = _node$key$loc3.end) == null ? void 0 : _node$key$loc3$end.line; + if (endLine) this.catchUp(endLine); + this.tsPrintClassMemberModifiers(node); + this._methodHead(node); +} +function StaticBlock(node) { + this.word("static"); + this.space(); + this.tokenChar(123); + if (node.body.length === 0) { + this.tokenChar(125); + } else { + this.newline(); + this.printSequence(node.body, node, { + indent: true + }); + this.sourceWithOffset("end", node.loc, 0, -1); + this.rightBrace(); + } +} + +//# sourceMappingURL=classes.js.map diff --git a/node_modules/@babel/generator/lib/generators/classes.js.map b/node_modules/@babel/generator/lib/generators/classes.js.map new file mode 100755 index 0000000..990bd3a --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/classes.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isExportDefaultDeclaration","isExportNamedDeclaration","ClassDeclaration","node","parent","format","decoratorsBeforeExport","printJoin","decorators","declare","word","space","abstract","id","print","typeParameters","superClass","superTypeParameters","implements","printList","body","ClassBody","token","length","newline","indent","printSequence","dedent","endsWith","sourceWithOffset","loc","rightBrace","ClassProperty","endLine","key","end","line","catchUp","tsPrintClassMemberModifiers","computed","_variance","optional","definite","typeAnnotation","value","semicolon","ClassAccessorProperty","ClassPrivateProperty","static","ClassMethod","_classMethodHead","ClassPrivateMethod","_methodHead","StaticBlock"],"sources":["../../src/generators/classes.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport {\n isExportDefaultDeclaration,\n isExportNamedDeclaration,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nexport function ClassDeclaration(\n this: Printer,\n node: t.ClassDeclaration,\n parent: t.Node,\n) {\n if (process.env.BABEL_8_BREAKING) {\n this.printJoin(node.decorators, node);\n } else {\n if (\n !this.format.decoratorsBeforeExport ||\n (!isExportDefaultDeclaration(parent) && !isExportNamedDeclaration(parent))\n ) {\n this.printJoin(node.decorators, node);\n }\n }\n\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n if (node.abstract) {\n // TS\n this.word(\"abstract\");\n this.space();\n }\n\n this.word(\"class\");\n\n if (node.id) {\n this.space();\n this.print(node.id, node);\n }\n\n this.print(node.typeParameters, node);\n\n if (node.superClass) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.superClass, node);\n this.print(node.superTypeParameters, node);\n }\n\n if (node.implements) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements, node);\n }\n\n this.space();\n this.print(node.body, node);\n}\n\nexport { ClassDeclaration as ClassExpression };\n\nexport function ClassBody(this: Printer, node: t.ClassBody) {\n this.token(\"{\");\n if (node.body.length === 0) {\n this.token(\"}\");\n } else {\n this.newline();\n\n this.indent();\n this.printSequence(node.body, node);\n this.dedent();\n\n if (!this.endsWith(charCodes.lineFeed)) this.newline();\n\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n\n this.rightBrace();\n }\n}\n\nexport function ClassProperty(this: Printer, node: t.ClassProperty) {\n this.printJoin(node.decorators, node);\n\n // catch up to property key, avoid line break\n // between member modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n this.tsPrintClassMemberModifiers(node);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n this._variance(node);\n this.print(node.key, node);\n }\n\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n\n this.print(node.typeAnnotation, node);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value, node);\n }\n this.semicolon();\n}\n\nexport function ClassAccessorProperty(\n this: Printer,\n node: t.ClassAccessorProperty,\n) {\n this.printJoin(node.decorators, node);\n\n // catch up to property key, avoid line break\n // between member modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n // TS does not support class accessor property yet\n this.tsPrintClassMemberModifiers(node);\n\n this.word(\"accessor\", true);\n this.space();\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n // Todo: Flow does not support class accessor property yet.\n this._variance(node);\n this.print(node.key, node);\n }\n\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n\n this.print(node.typeAnnotation, node);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value, node);\n }\n this.semicolon();\n}\n\nexport function ClassPrivateProperty(\n this: Printer,\n node: t.ClassPrivateProperty,\n) {\n this.printJoin(node.decorators, node);\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.print(node.key, node);\n this.print(node.typeAnnotation, node);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value, node);\n }\n this.semicolon();\n}\n\nexport function ClassMethod(this: Printer, node: t.ClassMethod) {\n this._classMethodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function ClassPrivateMethod(this: Printer, node: t.ClassPrivateMethod) {\n this._classMethodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function _classMethodHead(\n this: Printer,\n node: t.ClassMethod | t.ClassPrivateMethod | t.TSDeclareMethod,\n) {\n this.printJoin(node.decorators, node);\n\n // catch up to method key, avoid line break\n // between member modifiers/method heads and the method key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n this.tsPrintClassMemberModifiers(node);\n this._methodHead(node);\n}\n\nexport function StaticBlock(this: Printer, node: t.StaticBlock) {\n this.word(\"static\");\n this.space();\n this.token(\"{\");\n if (node.body.length === 0) {\n this.token(\"}\");\n } else {\n this.newline();\n this.printSequence(node.body, node, {\n indent: true,\n });\n\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n\n this.rightBrace();\n }\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/expressions.js b/node_modules/@babel/generator/lib/generators/expressions.js new file mode 100755 index 0000000..f35a289 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/expressions.js @@ -0,0 +1,299 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.LogicalExpression = exports.BinaryExpression = exports.AssignmentExpression = AssignmentExpression; +exports.AssignmentPattern = AssignmentPattern; +exports.AwaitExpression = AwaitExpression; +exports.BindExpression = BindExpression; +exports.CallExpression = CallExpression; +exports.ConditionalExpression = ConditionalExpression; +exports.Decorator = Decorator; +exports.DoExpression = DoExpression; +exports.EmptyStatement = EmptyStatement; +exports.ExpressionStatement = ExpressionStatement; +exports.Import = Import; +exports.MemberExpression = MemberExpression; +exports.MetaProperty = MetaProperty; +exports.ModuleExpression = ModuleExpression; +exports.NewExpression = NewExpression; +exports.OptionalCallExpression = OptionalCallExpression; +exports.OptionalMemberExpression = OptionalMemberExpression; +exports.ParenthesizedExpression = ParenthesizedExpression; +exports.PrivateName = PrivateName; +exports.SequenceExpression = SequenceExpression; +exports.Super = Super; +exports.ThisExpression = ThisExpression; +exports.UnaryExpression = UnaryExpression; +exports.UpdateExpression = UpdateExpression; +exports.V8IntrinsicIdentifier = V8IntrinsicIdentifier; +exports.YieldExpression = YieldExpression; +var _t = require("@babel/types"); +var n = require("../node"); +const { + isCallExpression, + isLiteral, + isMemberExpression, + isNewExpression +} = _t; +function UnaryExpression(node) { + if (node.operator === "void" || node.operator === "delete" || node.operator === "typeof" || + node.operator === "throw") { + this.word(node.operator); + this.space(); + } else { + this.token(node.operator); + } + this.print(node.argument, node); +} +function DoExpression(node) { + if (node.async) { + this.word("async", true); + this.space(); + } + this.word("do"); + this.space(); + this.print(node.body, node); +} +function ParenthesizedExpression(node) { + this.tokenChar(40); + this.print(node.expression, node); + this.tokenChar(41); +} +function UpdateExpression(node) { + if (node.prefix) { + this.token(node.operator); + this.print(node.argument, node); + } else { + this.printTerminatorless(node.argument, node, true); + this.token(node.operator); + } +} +function ConditionalExpression(node) { + this.print(node.test, node); + this.space(); + this.tokenChar(63); + this.space(); + this.print(node.consequent, node); + this.space(); + this.tokenChar(58); + this.space(); + this.print(node.alternate, node); +} +function NewExpression(node, parent) { + this.word("new"); + this.space(); + this.print(node.callee, node); + if (this.format.minified && node.arguments.length === 0 && !node.optional && !isCallExpression(parent, { + callee: node + }) && !isMemberExpression(parent) && !isNewExpression(parent)) { + return; + } + this.print(node.typeArguments, node); + this.print(node.typeParameters, node); + + if (node.optional) { + this.token("?."); + } + this.tokenChar(40); + this.printList(node.arguments, node); + this.tokenChar(41); +} +function SequenceExpression(node) { + this.printList(node.expressions, node); +} +function ThisExpression() { + this.word("this"); +} +function Super() { + this.word("super"); +} +function isDecoratorMemberExpression(node) { + switch (node.type) { + case "Identifier": + return true; + case "MemberExpression": + return !node.computed && node.property.type === "Identifier" && isDecoratorMemberExpression(node.object); + default: + return false; + } +} +function shouldParenthesizeDecoratorExpression(node) { + if (node.type === "ParenthesizedExpression") { + return false; + } + return !isDecoratorMemberExpression(node.type === "CallExpression" ? node.callee : node); +} +function Decorator(node) { + this.tokenChar(64); + const { + expression + } = node; + if (shouldParenthesizeDecoratorExpression(expression)) { + this.tokenChar(40); + this.print(expression, node); + this.tokenChar(41); + } else { + this.print(expression, node); + } + this.newline(); +} +function OptionalMemberExpression(node) { + this.print(node.object, node); + if (!node.computed && isMemberExpression(node.property)) { + throw new TypeError("Got a MemberExpression for MemberExpression property"); + } + let computed = node.computed; + if (isLiteral(node.property) && typeof node.property.value === "number") { + computed = true; + } + if (node.optional) { + this.token("?."); + } + if (computed) { + this.tokenChar(91); + this.print(node.property, node); + this.tokenChar(93); + } else { + if (!node.optional) { + this.tokenChar(46); + } + this.print(node.property, node); + } +} +function OptionalCallExpression(node) { + this.print(node.callee, node); + this.print(node.typeParameters, node); + + if (node.optional) { + this.token("?."); + } + this.print(node.typeArguments, node); + + this.tokenChar(40); + this.printList(node.arguments, node); + this.tokenChar(41); +} +function CallExpression(node) { + this.print(node.callee, node); + this.print(node.typeArguments, node); + this.print(node.typeParameters, node); + this.tokenChar(40); + this.printList(node.arguments, node); + this.tokenChar(41); +} +function Import() { + this.word("import"); +} +function AwaitExpression(node) { + this.word("await"); + if (node.argument) { + this.space(); + this.printTerminatorless(node.argument, node, false); + } +} +function YieldExpression(node) { + this.word("yield", true); + if (node.delegate) { + this.tokenChar(42); + if (node.argument) { + this.space(); + this.print(node.argument, node); + } + } else { + if (node.argument) { + this.space(); + this.printTerminatorless(node.argument, node, false); + } + } +} +function EmptyStatement() { + this.semicolon(true); +} + +function ExpressionStatement(node) { + this.print(node.expression, node); + this.semicolon(); +} +function AssignmentPattern(node) { + this.print(node.left, node); + if (node.left.optional) this.tokenChar(63); + this.print(node.left.typeAnnotation, node); + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.right, node); +} +function AssignmentExpression(node, parent) { + const parens = this.inForStatementInitCounter && node.operator === "in" && !n.needsParens(node, parent); + if (parens) { + this.tokenChar(40); + } + this.print(node.left, node); + this.space(); + if (node.operator === "in" || node.operator === "instanceof") { + this.word(node.operator); + } else { + this.token(node.operator); + } + this.space(); + this.print(node.right, node); + if (parens) { + this.tokenChar(41); + } +} +function BindExpression(node) { + this.print(node.object, node); + this.token("::"); + this.print(node.callee, node); +} +function MemberExpression(node) { + this.print(node.object, node); + if (!node.computed && isMemberExpression(node.property)) { + throw new TypeError("Got a MemberExpression for MemberExpression property"); + } + let computed = node.computed; + if (isLiteral(node.property) && typeof node.property.value === "number") { + computed = true; + } + if (computed) { + this.tokenChar(91); + this.print(node.property, node); + this.tokenChar(93); + } else { + this.tokenChar(46); + this.print(node.property, node); + } +} +function MetaProperty(node) { + this.print(node.meta, node); + this.tokenChar(46); + this.print(node.property, node); +} +function PrivateName(node) { + this.tokenChar(35); + this.print(node.id, node); +} +function V8IntrinsicIdentifier(node) { + this.tokenChar(37); + this.word(node.name); +} +function ModuleExpression(node) { + this.word("module", true); + this.space(); + this.tokenChar(123); + this.indent(); + const { + body + } = node; + if (body.body.length || body.directives.length) { + this.newline(); + } + this.print(body, node); + this.dedent(); + this.sourceWithOffset("end", node.loc, 0, -1); + this.rightBrace(); +} + +//# sourceMappingURL=expressions.js.map diff --git a/node_modules/@babel/generator/lib/generators/expressions.js.map b/node_modules/@babel/generator/lib/generators/expressions.js.map new file mode 100755 index 0000000..abdac34 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/expressions.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isCallExpression","isLiteral","isMemberExpression","isNewExpression","UnaryExpression","node","operator","word","space","token","print","argument","DoExpression","async","body","ParenthesizedExpression","expression","UpdateExpression","prefix","printTerminatorless","ConditionalExpression","test","consequent","alternate","NewExpression","parent","callee","format","minified","arguments","length","optional","typeArguments","typeParameters","printList","SequenceExpression","expressions","ThisExpression","Super","isDecoratorMemberExpression","type","computed","property","object","shouldParenthesizeDecoratorExpression","Decorator","newline","OptionalMemberExpression","TypeError","value","OptionalCallExpression","CallExpression","Import","AwaitExpression","YieldExpression","delegate","EmptyStatement","semicolon","ExpressionStatement","AssignmentPattern","left","typeAnnotation","right","AssignmentExpression","parens","inForStatementInitCounter","n","needsParens","BindExpression","MemberExpression","MetaProperty","meta","PrivateName","id","V8IntrinsicIdentifier","name","ModuleExpression","indent","directives","dedent","sourceWithOffset","loc","rightBrace"],"sources":["../../src/generators/expressions.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport {\n isCallExpression,\n isLiteral,\n isMemberExpression,\n isNewExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as n from \"../node\";\n\nexport function UnaryExpression(this: Printer, node: t.UnaryExpression) {\n if (\n node.operator === \"void\" ||\n node.operator === \"delete\" ||\n node.operator === \"typeof\" ||\n // throwExpressions\n node.operator === \"throw\"\n ) {\n this.word(node.operator);\n this.space();\n } else {\n this.token(node.operator);\n }\n\n this.print(node.argument, node);\n}\n\nexport function DoExpression(this: Printer, node: t.DoExpression) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n this.word(\"do\");\n this.space();\n this.print(node.body, node);\n}\n\nexport function ParenthesizedExpression(\n this: Printer,\n node: t.ParenthesizedExpression,\n) {\n this.token(\"(\");\n this.print(node.expression, node);\n this.token(\")\");\n}\n\nexport function UpdateExpression(this: Printer, node: t.UpdateExpression) {\n if (node.prefix) {\n this.token(node.operator);\n this.print(node.argument, node);\n } else {\n this.printTerminatorless(node.argument, node, true);\n this.token(node.operator);\n }\n}\n\nexport function ConditionalExpression(\n this: Printer,\n node: t.ConditionalExpression,\n) {\n this.print(node.test, node);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.consequent, node);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.alternate, node);\n}\n\nexport function NewExpression(\n this: Printer,\n node: t.NewExpression,\n parent: t.Node,\n) {\n this.word(\"new\");\n this.space();\n this.print(node.callee, node);\n if (\n this.format.minified &&\n node.arguments.length === 0 &&\n !node.optional &&\n !isCallExpression(parent, { callee: node }) &&\n !isMemberExpression(parent) &&\n !isNewExpression(parent)\n ) {\n return;\n }\n\n this.print(node.typeArguments, node); // Flow\n this.print(node.typeParameters, node); // TS\n\n if (node.optional) {\n // TODO: This can never happen\n this.token(\"?.\");\n }\n this.token(\"(\");\n this.printList(node.arguments, node);\n this.token(\")\");\n}\n\nexport function SequenceExpression(this: Printer, node: t.SequenceExpression) {\n this.printList(node.expressions, node);\n}\n\nexport function ThisExpression(this: Printer) {\n this.word(\"this\");\n}\n\nexport function Super(this: Printer) {\n this.word(\"super\");\n}\n\nfunction isDecoratorMemberExpression(\n node: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n): boolean {\n switch (node.type) {\n case \"Identifier\":\n return true;\n case \"MemberExpression\":\n return (\n !node.computed &&\n node.property.type === \"Identifier\" &&\n isDecoratorMemberExpression(node.object)\n );\n default:\n return false;\n }\n}\nfunction shouldParenthesizeDecoratorExpression(\n node: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n) {\n if (node.type === \"ParenthesizedExpression\") {\n // We didn't check extra?.parenthesized here because we don't track decorators in needsParen\n return false;\n }\n return !isDecoratorMemberExpression(\n node.type === \"CallExpression\" ? node.callee : node,\n );\n}\n\nexport function Decorator(this: Printer, node: t.Decorator) {\n this.token(\"@\");\n const { expression } = node;\n if (shouldParenthesizeDecoratorExpression(expression)) {\n this.token(\"(\");\n this.print(expression, node);\n this.token(\")\");\n } else {\n this.print(expression, node);\n }\n this.newline();\n}\n\nexport function OptionalMemberExpression(\n this: Printer,\n node: t.OptionalMemberExpression,\n) {\n this.print(node.object, node);\n\n if (!node.computed && isMemberExpression(node.property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n let computed = node.computed;\n // @ts-expect-error todo(flow->ts) maybe instead of typeof check specific literal types?\n if (isLiteral(node.property) && typeof node.property.value === \"number\") {\n computed = true;\n }\n if (node.optional) {\n this.token(\"?.\");\n }\n\n if (computed) {\n this.token(\"[\");\n this.print(node.property, node);\n this.token(\"]\");\n } else {\n if (!node.optional) {\n this.token(\".\");\n }\n this.print(node.property, node);\n }\n}\n\nexport function OptionalCallExpression(\n this: Printer,\n node: t.OptionalCallExpression,\n) {\n this.print(node.callee, node);\n\n this.print(node.typeParameters, node); // TS\n\n if (node.optional) {\n this.token(\"?.\");\n }\n\n this.print(node.typeArguments, node); // Flow\n\n this.token(\"(\");\n this.printList(node.arguments, node);\n this.token(\")\");\n}\n\nexport function CallExpression(this: Printer, node: t.CallExpression) {\n this.print(node.callee, node);\n\n this.print(node.typeArguments, node); // Flow\n this.print(node.typeParameters, node); // TS\n this.token(\"(\");\n this.printList(node.arguments, node);\n this.token(\")\");\n}\n\nexport function Import(this: Printer) {\n this.word(\"import\");\n}\n\nexport function AwaitExpression(this: Printer, node: t.AwaitExpression) {\n this.word(\"await\");\n\n if (node.argument) {\n this.space();\n this.printTerminatorless(node.argument, node, false);\n }\n}\n\nexport function YieldExpression(this: Printer, node: t.YieldExpression) {\n this.word(\"yield\", true);\n\n if (node.delegate) {\n this.token(\"*\");\n if (node.argument) {\n this.space();\n // line terminators are allowed after yield*\n this.print(node.argument, node);\n }\n } else {\n if (node.argument) {\n this.space();\n this.printTerminatorless(node.argument, node, false);\n }\n }\n}\n\nexport function EmptyStatement(this: Printer) {\n this.semicolon(true /* force */);\n}\n\nexport function ExpressionStatement(\n this: Printer,\n node: t.ExpressionStatement,\n) {\n this.print(node.expression, node);\n this.semicolon();\n}\n\nexport function AssignmentPattern(this: Printer, node: t.AssignmentPattern) {\n this.print(node.left, node);\n // @ts-expect-error todo(flow->ts) property present on some of the types in union but not all\n if (node.left.optional) this.token(\"?\");\n // @ts-expect-error todo(flow->ts) property present on some of the types in union but not all\n this.print(node.left.typeAnnotation, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.right, node);\n}\n\nexport function AssignmentExpression(\n this: Printer,\n node: t.AssignmentExpression,\n parent: t.Node,\n) {\n // Somewhere inside a for statement `init` node but doesn't usually\n // needs a paren except for `in` expressions: `for (a in b ? a : b;;)`\n const parens =\n this.inForStatementInitCounter &&\n node.operator === \"in\" &&\n !n.needsParens(node, parent);\n\n if (parens) {\n this.token(\"(\");\n }\n\n this.print(node.left, node);\n\n this.space();\n if (node.operator === \"in\" || node.operator === \"instanceof\") {\n this.word(node.operator);\n } else {\n this.token(node.operator);\n }\n this.space();\n\n this.print(node.right, node);\n\n if (parens) {\n this.token(\")\");\n }\n}\n\nexport function BindExpression(this: Printer, node: t.BindExpression) {\n this.print(node.object, node);\n this.token(\"::\");\n this.print(node.callee, node);\n}\n\nexport {\n AssignmentExpression as BinaryExpression,\n AssignmentExpression as LogicalExpression,\n};\n\nexport function MemberExpression(this: Printer, node: t.MemberExpression) {\n this.print(node.object, node);\n\n if (!node.computed && isMemberExpression(node.property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n let computed = node.computed;\n // @ts-expect-error todo(flow->ts) maybe use specific literal types\n if (isLiteral(node.property) && typeof node.property.value === \"number\") {\n computed = true;\n }\n\n if (computed) {\n this.token(\"[\");\n this.print(node.property, node);\n this.token(\"]\");\n } else {\n this.token(\".\");\n this.print(node.property, node);\n }\n}\n\nexport function MetaProperty(this: Printer, node: t.MetaProperty) {\n this.print(node.meta, node);\n this.token(\".\");\n this.print(node.property, node);\n}\n\nexport function PrivateName(this: Printer, node: t.PrivateName) {\n this.token(\"#\");\n this.print(node.id, node);\n}\n\nexport function V8IntrinsicIdentifier(\n this: Printer,\n node: t.V8IntrinsicIdentifier,\n) {\n this.token(\"%\");\n this.word(node.name);\n}\n\nexport function ModuleExpression(this: Printer, node: t.ModuleExpression) {\n this.word(\"module\", true);\n this.space();\n this.token(\"{\");\n this.indent();\n const { body } = node;\n if (body.body.length || body.directives.length) {\n this.newline();\n }\n this.print(body, node);\n this.dedent();\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n this.rightBrace();\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/flow.js b/node_modules/@babel/generator/lib/generators/flow.js new file mode 100755 index 0000000..bde042c --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/flow.js @@ -0,0 +1,663 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AnyTypeAnnotation = AnyTypeAnnotation; +exports.ArrayTypeAnnotation = ArrayTypeAnnotation; +exports.BooleanLiteralTypeAnnotation = BooleanLiteralTypeAnnotation; +exports.BooleanTypeAnnotation = BooleanTypeAnnotation; +exports.DeclareClass = DeclareClass; +exports.DeclareExportAllDeclaration = DeclareExportAllDeclaration; +exports.DeclareExportDeclaration = DeclareExportDeclaration; +exports.DeclareFunction = DeclareFunction; +exports.DeclareInterface = DeclareInterface; +exports.DeclareModule = DeclareModule; +exports.DeclareModuleExports = DeclareModuleExports; +exports.DeclareOpaqueType = DeclareOpaqueType; +exports.DeclareTypeAlias = DeclareTypeAlias; +exports.DeclareVariable = DeclareVariable; +exports.DeclaredPredicate = DeclaredPredicate; +exports.EmptyTypeAnnotation = EmptyTypeAnnotation; +exports.EnumBooleanBody = EnumBooleanBody; +exports.EnumBooleanMember = EnumBooleanMember; +exports.EnumDeclaration = EnumDeclaration; +exports.EnumDefaultedMember = EnumDefaultedMember; +exports.EnumNumberBody = EnumNumberBody; +exports.EnumNumberMember = EnumNumberMember; +exports.EnumStringBody = EnumStringBody; +exports.EnumStringMember = EnumStringMember; +exports.EnumSymbolBody = EnumSymbolBody; +exports.ExistsTypeAnnotation = ExistsTypeAnnotation; +exports.FunctionTypeAnnotation = FunctionTypeAnnotation; +exports.FunctionTypeParam = FunctionTypeParam; +exports.IndexedAccessType = IndexedAccessType; +exports.InferredPredicate = InferredPredicate; +exports.InterfaceDeclaration = InterfaceDeclaration; +exports.GenericTypeAnnotation = exports.ClassImplements = exports.InterfaceExtends = InterfaceExtends; +exports.InterfaceTypeAnnotation = InterfaceTypeAnnotation; +exports.IntersectionTypeAnnotation = IntersectionTypeAnnotation; +exports.MixedTypeAnnotation = MixedTypeAnnotation; +exports.NullLiteralTypeAnnotation = NullLiteralTypeAnnotation; +exports.NullableTypeAnnotation = NullableTypeAnnotation; +Object.defineProperty(exports, "NumberLiteralTypeAnnotation", { + enumerable: true, + get: function () { + return _types2.NumericLiteral; + } +}); +exports.NumberTypeAnnotation = NumberTypeAnnotation; +exports.ObjectTypeAnnotation = ObjectTypeAnnotation; +exports.ObjectTypeCallProperty = ObjectTypeCallProperty; +exports.ObjectTypeIndexer = ObjectTypeIndexer; +exports.ObjectTypeInternalSlot = ObjectTypeInternalSlot; +exports.ObjectTypeProperty = ObjectTypeProperty; +exports.ObjectTypeSpreadProperty = ObjectTypeSpreadProperty; +exports.OpaqueType = OpaqueType; +exports.OptionalIndexedAccessType = OptionalIndexedAccessType; +exports.QualifiedTypeIdentifier = QualifiedTypeIdentifier; +Object.defineProperty(exports, "StringLiteralTypeAnnotation", { + enumerable: true, + get: function () { + return _types2.StringLiteral; + } +}); +exports.StringTypeAnnotation = StringTypeAnnotation; +exports.SymbolTypeAnnotation = SymbolTypeAnnotation; +exports.ThisTypeAnnotation = ThisTypeAnnotation; +exports.TupleTypeAnnotation = TupleTypeAnnotation; +exports.TypeAlias = TypeAlias; +exports.TypeAnnotation = TypeAnnotation; +exports.TypeCastExpression = TypeCastExpression; +exports.TypeParameter = TypeParameter; +exports.TypeParameterDeclaration = exports.TypeParameterInstantiation = TypeParameterInstantiation; +exports.TypeofTypeAnnotation = TypeofTypeAnnotation; +exports.UnionTypeAnnotation = UnionTypeAnnotation; +exports.Variance = Variance; +exports.VoidTypeAnnotation = VoidTypeAnnotation; +exports._interfaceish = _interfaceish; +exports._variance = _variance; +var _t = require("@babel/types"); +var _modules = require("./modules"); +var _types2 = require("./types"); +const { + isDeclareExportDeclaration, + isStatement +} = _t; +function AnyTypeAnnotation() { + this.word("any"); +} +function ArrayTypeAnnotation(node) { + this.print(node.elementType, node, true); + this.tokenChar(91); + this.tokenChar(93); +} +function BooleanTypeAnnotation() { + this.word("boolean"); +} +function BooleanLiteralTypeAnnotation(node) { + this.word(node.value ? "true" : "false"); +} +function NullLiteralTypeAnnotation() { + this.word("null"); +} +function DeclareClass(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.word("class"); + this.space(); + this._interfaceish(node); +} +function DeclareFunction(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.word("function"); + this.space(); + this.print(node.id, node); + this.print(node.id.typeAnnotation.typeAnnotation, node); + if (node.predicate) { + this.space(); + this.print(node.predicate, node); + } + this.semicolon(); +} +function InferredPredicate() { + this.tokenChar(37); + this.word("checks"); +} +function DeclaredPredicate(node) { + this.tokenChar(37); + this.word("checks"); + this.tokenChar(40); + this.print(node.value, node); + this.tokenChar(41); +} +function DeclareInterface(node) { + this.word("declare"); + this.space(); + this.InterfaceDeclaration(node); +} +function DeclareModule(node) { + this.word("declare"); + this.space(); + this.word("module"); + this.space(); + this.print(node.id, node); + this.space(); + this.print(node.body, node); +} +function DeclareModuleExports(node) { + this.word("declare"); + this.space(); + this.word("module"); + this.tokenChar(46); + this.word("exports"); + this.print(node.typeAnnotation, node); +} +function DeclareTypeAlias(node) { + this.word("declare"); + this.space(); + this.TypeAlias(node); +} +function DeclareOpaqueType(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.OpaqueType(node); +} +function DeclareVariable(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.word("var"); + this.space(); + this.print(node.id, node); + this.print(node.id.typeAnnotation, node); + this.semicolon(); +} +function DeclareExportDeclaration(node) { + this.word("declare"); + this.space(); + this.word("export"); + this.space(); + if (node.default) { + this.word("default"); + this.space(); + } + FlowExportDeclaration.call(this, node); +} +function DeclareExportAllDeclaration(node) { + this.word("declare"); + this.space(); + _modules.ExportAllDeclaration.call(this, node); +} +function EnumDeclaration(node) { + const { + id, + body + } = node; + this.word("enum"); + this.space(); + this.print(id, node); + this.print(body, node); +} +function enumExplicitType(context, name, hasExplicitType) { + if (hasExplicitType) { + context.space(); + context.word("of"); + context.space(); + context.word(name); + } + context.space(); +} +function enumBody(context, node) { + const { + members + } = node; + context.token("{"); + context.indent(); + context.newline(); + for (const member of members) { + context.print(member, node); + context.newline(); + } + if (node.hasUnknownMembers) { + context.token("..."); + context.newline(); + } + context.dedent(); + context.token("}"); +} +function EnumBooleanBody(node) { + const { + explicitType + } = node; + enumExplicitType(this, "boolean", explicitType); + enumBody(this, node); +} +function EnumNumberBody(node) { + const { + explicitType + } = node; + enumExplicitType(this, "number", explicitType); + enumBody(this, node); +} +function EnumStringBody(node) { + const { + explicitType + } = node; + enumExplicitType(this, "string", explicitType); + enumBody(this, node); +} +function EnumSymbolBody(node) { + enumExplicitType(this, "symbol", true); + enumBody(this, node); +} +function EnumDefaultedMember(node) { + const { + id + } = node; + this.print(id, node); + this.tokenChar(44); +} +function enumInitializedMember(context, node) { + const { + id, + init + } = node; + context.print(id, node); + context.space(); + context.token("="); + context.space(); + context.print(init, node); + context.token(","); +} +function EnumBooleanMember(node) { + enumInitializedMember(this, node); +} +function EnumNumberMember(node) { + enumInitializedMember(this, node); +} +function EnumStringMember(node) { + enumInitializedMember(this, node); +} +function FlowExportDeclaration(node) { + if (node.declaration) { + const declar = node.declaration; + this.print(declar, node); + if (!isStatement(declar)) this.semicolon(); + } else { + this.tokenChar(123); + if (node.specifiers.length) { + this.space(); + this.printList(node.specifiers, node); + this.space(); + } + this.tokenChar(125); + if (node.source) { + this.space(); + this.word("from"); + this.space(); + this.print(node.source, node); + } + this.semicolon(); + } +} +function ExistsTypeAnnotation() { + this.tokenChar(42); +} +function FunctionTypeAnnotation(node, parent) { + this.print(node.typeParameters, node); + this.tokenChar(40); + if (node.this) { + this.word("this"); + this.tokenChar(58); + this.space(); + this.print(node.this.typeAnnotation, node); + if (node.params.length || node.rest) { + this.tokenChar(44); + this.space(); + } + } + this.printList(node.params, node); + if (node.rest) { + if (node.params.length) { + this.tokenChar(44); + this.space(); + } + this.token("..."); + this.print(node.rest, node); + } + this.tokenChar(41); + + if (parent && (parent.type === "ObjectTypeCallProperty" || parent.type === "ObjectTypeInternalSlot" || parent.type === "DeclareFunction" || parent.type === "ObjectTypeProperty" && parent.method)) { + this.tokenChar(58); + } else { + this.space(); + this.token("=>"); + } + this.space(); + this.print(node.returnType, node); +} +function FunctionTypeParam(node) { + this.print(node.name, node); + if (node.optional) this.tokenChar(63); + if (node.name) { + this.tokenChar(58); + this.space(); + } + this.print(node.typeAnnotation, node); +} +function InterfaceExtends(node) { + this.print(node.id, node); + this.print(node.typeParameters, node, true); +} +function _interfaceish(node) { + var _node$extends; + this.print(node.id, node); + this.print(node.typeParameters, node); + if ((_node$extends = node.extends) != null && _node$extends.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(node.extends, node); + } + if (node.mixins && node.mixins.length) { + this.space(); + this.word("mixins"); + this.space(); + this.printList(node.mixins, node); + } + if (node.implements && node.implements.length) { + this.space(); + this.word("implements"); + this.space(); + this.printList(node.implements, node); + } + this.space(); + this.print(node.body, node); +} +function _variance(node) { + if (node.variance) { + if (node.variance.kind === "plus") { + this.tokenChar(43); + } else if (node.variance.kind === "minus") { + this.tokenChar(45); + } + } +} +function InterfaceDeclaration(node) { + this.word("interface"); + this.space(); + this._interfaceish(node); +} +function andSeparator() { + this.space(); + this.tokenChar(38); + this.space(); +} +function InterfaceTypeAnnotation(node) { + this.word("interface"); + if (node.extends && node.extends.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(node.extends, node); + } + this.space(); + this.print(node.body, node); +} +function IntersectionTypeAnnotation(node) { + this.printJoin(node.types, node, { + separator: andSeparator + }); +} +function MixedTypeAnnotation() { + this.word("mixed"); +} +function EmptyTypeAnnotation() { + this.word("empty"); +} +function NullableTypeAnnotation(node) { + this.tokenChar(63); + this.print(node.typeAnnotation, node); +} +function NumberTypeAnnotation() { + this.word("number"); +} +function StringTypeAnnotation() { + this.word("string"); +} +function ThisTypeAnnotation() { + this.word("this"); +} +function TupleTypeAnnotation(node) { + this.tokenChar(91); + this.printList(node.types, node); + this.tokenChar(93); +} +function TypeofTypeAnnotation(node) { + this.word("typeof"); + this.space(); + this.print(node.argument, node); +} +function TypeAlias(node) { + this.word("type"); + this.space(); + this.print(node.id, node); + this.print(node.typeParameters, node); + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.right, node); + this.semicolon(); +} +function TypeAnnotation(node) { + this.tokenChar(58); + this.space(); + if (node.optional) this.tokenChar(63); + this.print(node.typeAnnotation, node); +} +function TypeParameterInstantiation(node) { + this.tokenChar(60); + this.printList(node.params, node, {}); + this.tokenChar(62); +} +function TypeParameter(node) { + this._variance(node); + this.word(node.name); + if (node.bound) { + this.print(node.bound, node); + } + if (node.default) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.default, node); + } +} +function OpaqueType(node) { + this.word("opaque"); + this.space(); + this.word("type"); + this.space(); + this.print(node.id, node); + this.print(node.typeParameters, node); + if (node.supertype) { + this.tokenChar(58); + this.space(); + this.print(node.supertype, node); + } + if (node.impltype) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.impltype, node); + } + this.semicolon(); +} +function ObjectTypeAnnotation(node) { + if (node.exact) { + this.token("{|"); + } else { + this.tokenChar(123); + } + + const props = [...node.properties, ...(node.callProperties || []), ...(node.indexers || []), ...(node.internalSlots || [])]; + if (props.length) { + this.newline(); + this.space(); + this.printJoin(props, node, { + addNewlines(leading) { + if (leading && !props[0]) return 1; + }, + indent: true, + statement: true, + iterator: () => { + if (props.length !== 1 || node.inexact) { + this.tokenChar(44); + this.space(); + } + } + }); + this.space(); + } + if (node.inexact) { + this.indent(); + this.token("..."); + if (props.length) { + this.newline(); + } + this.dedent(); + } + if (node.exact) { + this.token("|}"); + } else { + this.tokenChar(125); + } +} +function ObjectTypeInternalSlot(node) { + if (node.static) { + this.word("static"); + this.space(); + } + this.tokenChar(91); + this.tokenChar(91); + this.print(node.id, node); + this.tokenChar(93); + this.tokenChar(93); + if (node.optional) this.tokenChar(63); + if (!node.method) { + this.tokenChar(58); + this.space(); + } + this.print(node.value, node); +} +function ObjectTypeCallProperty(node) { + if (node.static) { + this.word("static"); + this.space(); + } + this.print(node.value, node); +} +function ObjectTypeIndexer(node) { + if (node.static) { + this.word("static"); + this.space(); + } + this._variance(node); + this.tokenChar(91); + if (node.id) { + this.print(node.id, node); + this.tokenChar(58); + this.space(); + } + this.print(node.key, node); + this.tokenChar(93); + this.tokenChar(58); + this.space(); + this.print(node.value, node); +} +function ObjectTypeProperty(node) { + if (node.proto) { + this.word("proto"); + this.space(); + } + if (node.static) { + this.word("static"); + this.space(); + } + if (node.kind === "get" || node.kind === "set") { + this.word(node.kind); + this.space(); + } + this._variance(node); + this.print(node.key, node); + if (node.optional) this.tokenChar(63); + if (!node.method) { + this.tokenChar(58); + this.space(); + } + this.print(node.value, node); +} +function ObjectTypeSpreadProperty(node) { + this.token("..."); + this.print(node.argument, node); +} +function QualifiedTypeIdentifier(node) { + this.print(node.qualification, node); + this.tokenChar(46); + this.print(node.id, node); +} +function SymbolTypeAnnotation() { + this.word("symbol"); +} +function orSeparator() { + this.space(); + this.tokenChar(124); + this.space(); +} +function UnionTypeAnnotation(node) { + this.printJoin(node.types, node, { + separator: orSeparator + }); +} +function TypeCastExpression(node) { + this.tokenChar(40); + this.print(node.expression, node); + this.print(node.typeAnnotation, node); + this.tokenChar(41); +} +function Variance(node) { + if (node.kind === "plus") { + this.tokenChar(43); + } else { + this.tokenChar(45); + } +} +function VoidTypeAnnotation() { + this.word("void"); +} +function IndexedAccessType(node) { + this.print(node.objectType, node, true); + this.tokenChar(91); + this.print(node.indexType, node); + this.tokenChar(93); +} +function OptionalIndexedAccessType(node) { + this.print(node.objectType, node); + if (node.optional) { + this.token("?."); + } + this.tokenChar(91); + this.print(node.indexType, node); + this.tokenChar(93); +} + +//# sourceMappingURL=flow.js.map diff --git a/node_modules/@babel/generator/lib/generators/flow.js.map b/node_modules/@babel/generator/lib/generators/flow.js.map new file mode 100755 index 0000000..5edf9ee --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/flow.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isDeclareExportDeclaration","isStatement","AnyTypeAnnotation","word","ArrayTypeAnnotation","node","print","elementType","token","BooleanTypeAnnotation","BooleanLiteralTypeAnnotation","value","NullLiteralTypeAnnotation","DeclareClass","parent","space","_interfaceish","DeclareFunction","id","typeAnnotation","predicate","semicolon","InferredPredicate","DeclaredPredicate","DeclareInterface","InterfaceDeclaration","DeclareModule","body","DeclareModuleExports","DeclareTypeAlias","TypeAlias","DeclareOpaqueType","OpaqueType","DeclareVariable","DeclareExportDeclaration","default","FlowExportDeclaration","call","DeclareExportAllDeclaration","ExportAllDeclaration","EnumDeclaration","enumExplicitType","context","name","hasExplicitType","enumBody","members","indent","newline","member","hasUnknownMembers","dedent","EnumBooleanBody","explicitType","EnumNumberBody","EnumStringBody","EnumSymbolBody","EnumDefaultedMember","enumInitializedMember","init","EnumBooleanMember","EnumNumberMember","EnumStringMember","declaration","declar","specifiers","length","printList","source","ExistsTypeAnnotation","FunctionTypeAnnotation","typeParameters","this","params","rest","type","method","returnType","FunctionTypeParam","optional","InterfaceExtends","extends","mixins","implements","_variance","variance","kind","andSeparator","InterfaceTypeAnnotation","IntersectionTypeAnnotation","printJoin","types","separator","MixedTypeAnnotation","EmptyTypeAnnotation","NullableTypeAnnotation","NumberTypeAnnotation","StringTypeAnnotation","ThisTypeAnnotation","TupleTypeAnnotation","TypeofTypeAnnotation","argument","right","TypeAnnotation","TypeParameterInstantiation","TypeParameter","bound","supertype","impltype","ObjectTypeAnnotation","exact","props","properties","callProperties","indexers","internalSlots","addNewlines","leading","statement","iterator","inexact","ObjectTypeInternalSlot","static","ObjectTypeCallProperty","ObjectTypeIndexer","key","ObjectTypeProperty","proto","ObjectTypeSpreadProperty","QualifiedTypeIdentifier","qualification","SymbolTypeAnnotation","orSeparator","UnionTypeAnnotation","TypeCastExpression","expression","Variance","VoidTypeAnnotation","IndexedAccessType","objectType","indexType","OptionalIndexedAccessType"],"sources":["../../src/generators/flow.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport { isDeclareExportDeclaration, isStatement } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { ExportAllDeclaration } from \"./modules\";\n\nexport function AnyTypeAnnotation(this: Printer) {\n this.word(\"any\");\n}\n\nexport function ArrayTypeAnnotation(\n this: Printer,\n node: t.ArrayTypeAnnotation,\n) {\n this.print(node.elementType, node, true);\n this.token(\"[\");\n this.token(\"]\");\n}\n\nexport function BooleanTypeAnnotation(this: Printer) {\n this.word(\"boolean\");\n}\n\nexport function BooleanLiteralTypeAnnotation(\n this: Printer,\n node: t.BooleanLiteralTypeAnnotation,\n) {\n this.word(node.value ? \"true\" : \"false\");\n}\n\nexport function NullLiteralTypeAnnotation(this: Printer) {\n this.word(\"null\");\n}\n\nexport function DeclareClass(\n this: Printer,\n node: t.DeclareClass,\n parent: t.Node,\n) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"class\");\n this.space();\n this._interfaceish(node);\n}\n\nexport function DeclareFunction(\n this: Printer,\n node: t.DeclareFunction,\n parent: t.Node,\n) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"function\");\n this.space();\n this.print(node.id, node);\n // @ts-ignore(Babel 7 vs Babel 8) TODO(Babel 8) Remove this comment, since we'll remove the Noop node\n this.print(node.id.typeAnnotation.typeAnnotation, node);\n\n if (node.predicate) {\n this.space();\n this.print(node.predicate, node);\n }\n\n this.semicolon();\n}\n\nexport function InferredPredicate(this: Printer) {\n this.token(\"%\");\n this.word(\"checks\");\n}\n\nexport function DeclaredPredicate(this: Printer, node: t.DeclaredPredicate) {\n this.token(\"%\");\n this.word(\"checks\");\n this.token(\"(\");\n this.print(node.value, node);\n this.token(\")\");\n}\n\nexport function DeclareInterface(this: Printer, node: t.DeclareInterface) {\n this.word(\"declare\");\n this.space();\n this.InterfaceDeclaration(node);\n}\n\nexport function DeclareModule(this: Printer, node: t.DeclareModule) {\n this.word(\"declare\");\n this.space();\n this.word(\"module\");\n this.space();\n this.print(node.id, node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function DeclareModuleExports(\n this: Printer,\n node: t.DeclareModuleExports,\n) {\n this.word(\"declare\");\n this.space();\n this.word(\"module\");\n this.token(\".\");\n this.word(\"exports\");\n this.print(node.typeAnnotation, node);\n}\n\nexport function DeclareTypeAlias(this: Printer, node: t.DeclareTypeAlias) {\n this.word(\"declare\");\n this.space();\n this.TypeAlias(node);\n}\n\nexport function DeclareOpaqueType(\n this: Printer,\n node: t.DeclareOpaqueType,\n parent: t.Node,\n) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.OpaqueType(node);\n}\n\nexport function DeclareVariable(\n this: Printer,\n node: t.DeclareVariable,\n parent: t.Node,\n) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"var\");\n this.space();\n this.print(node.id, node);\n this.print(node.id.typeAnnotation, node);\n this.semicolon();\n}\n\nexport function DeclareExportDeclaration(\n this: Printer,\n node: t.DeclareExportDeclaration,\n) {\n this.word(\"declare\");\n this.space();\n this.word(\"export\");\n this.space();\n if (node.default) {\n this.word(\"default\");\n this.space();\n }\n\n FlowExportDeclaration.call(this, node);\n}\n\nexport function DeclareExportAllDeclaration(\n this: Printer,\n node: t.DeclareExportAllDeclaration,\n) {\n this.word(\"declare\");\n this.space();\n ExportAllDeclaration.call(this, node);\n}\n\nexport function EnumDeclaration(this: Printer, node: t.EnumDeclaration) {\n const { id, body } = node;\n this.word(\"enum\");\n this.space();\n this.print(id, node);\n this.print(body, node);\n}\n\nfunction enumExplicitType(\n context: Printer,\n name: string,\n hasExplicitType: boolean,\n) {\n if (hasExplicitType) {\n context.space();\n context.word(\"of\");\n context.space();\n context.word(name);\n }\n context.space();\n}\n\nfunction enumBody(context: Printer, node: t.EnumBody) {\n const { members } = node;\n context.token(\"{\");\n context.indent();\n context.newline();\n for (const member of members) {\n context.print(member, node);\n context.newline();\n }\n if (node.hasUnknownMembers) {\n context.token(\"...\");\n context.newline();\n }\n context.dedent();\n context.token(\"}\");\n}\n\nexport function EnumBooleanBody(this: Printer, node: t.EnumBooleanBody) {\n const { explicitType } = node;\n enumExplicitType(this, \"boolean\", explicitType);\n enumBody(this, node);\n}\n\nexport function EnumNumberBody(this: Printer, node: t.EnumNumberBody) {\n const { explicitType } = node;\n enumExplicitType(this, \"number\", explicitType);\n enumBody(this, node);\n}\n\nexport function EnumStringBody(this: Printer, node: t.EnumStringBody) {\n const { explicitType } = node;\n enumExplicitType(this, \"string\", explicitType);\n enumBody(this, node);\n}\n\nexport function EnumSymbolBody(this: Printer, node: t.EnumSymbolBody) {\n enumExplicitType(this, \"symbol\", true);\n enumBody(this, node);\n}\n\nexport function EnumDefaultedMember(\n this: Printer,\n node: t.EnumDefaultedMember,\n) {\n const { id } = node;\n this.print(id, node);\n this.token(\",\");\n}\n\nfunction enumInitializedMember(\n context: Printer,\n node: t.EnumBooleanMember | t.EnumNumberMember | t.EnumStringMember,\n) {\n const { id, init } = node;\n context.print(id, node);\n context.space();\n context.token(\"=\");\n context.space();\n context.print(init, node);\n context.token(\",\");\n}\n\nexport function EnumBooleanMember(this: Printer, node: t.EnumBooleanMember) {\n enumInitializedMember(this, node);\n}\n\nexport function EnumNumberMember(this: Printer, node: t.EnumNumberMember) {\n enumInitializedMember(this, node);\n}\n\nexport function EnumStringMember(this: Printer, node: t.EnumStringMember) {\n enumInitializedMember(this, node);\n}\n\nfunction FlowExportDeclaration(\n this: Printer,\n node: t.DeclareExportDeclaration,\n) {\n if (node.declaration) {\n const declar = node.declaration;\n this.print(declar, node);\n if (!isStatement(declar)) this.semicolon();\n } else {\n this.token(\"{\");\n if (node.specifiers.length) {\n this.space();\n this.printList(node.specifiers, node);\n this.space();\n }\n this.token(\"}\");\n\n if (node.source) {\n this.space();\n this.word(\"from\");\n this.space();\n this.print(node.source, node);\n }\n\n this.semicolon();\n }\n}\n\nexport function ExistsTypeAnnotation(this: Printer) {\n this.token(\"*\");\n}\n\nexport function FunctionTypeAnnotation(\n this: Printer,\n node: t.FunctionTypeAnnotation,\n parent: t.Node | void,\n) {\n this.print(node.typeParameters, node);\n this.token(\"(\");\n\n if (node.this) {\n this.word(\"this\");\n this.token(\":\");\n this.space();\n this.print(node.this.typeAnnotation, node);\n if (node.params.length || node.rest) {\n this.token(\",\");\n this.space();\n }\n }\n\n this.printList(node.params, node);\n\n if (node.rest) {\n if (node.params.length) {\n this.token(\",\");\n this.space();\n }\n this.token(\"...\");\n this.print(node.rest, node);\n }\n\n this.token(\")\");\n\n // this node type is overloaded, not sure why but it makes it EXTREMELY annoying\n if (\n parent &&\n (parent.type === \"ObjectTypeCallProperty\" ||\n parent.type === \"ObjectTypeInternalSlot\" ||\n parent.type === \"DeclareFunction\" ||\n (parent.type === \"ObjectTypeProperty\" && parent.method))\n ) {\n this.token(\":\");\n } else {\n this.space();\n this.token(\"=>\");\n }\n\n this.space();\n this.print(node.returnType, node);\n}\n\nexport function FunctionTypeParam(this: Printer, node: t.FunctionTypeParam) {\n this.print(node.name, node);\n if (node.optional) this.token(\"?\");\n if (node.name) {\n this.token(\":\");\n this.space();\n }\n this.print(node.typeAnnotation, node);\n}\n\nexport function InterfaceExtends(this: Printer, node: t.InterfaceExtends) {\n this.print(node.id, node);\n this.print(node.typeParameters, node, true);\n}\n\nexport {\n InterfaceExtends as ClassImplements,\n InterfaceExtends as GenericTypeAnnotation,\n};\n\nexport function _interfaceish(\n this: Printer,\n node: t.InterfaceDeclaration | t.DeclareInterface | t.DeclareClass,\n) {\n this.print(node.id, node);\n this.print(node.typeParameters, node);\n if (node.extends?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(node.extends, node);\n }\n if (node.mixins && node.mixins.length) {\n this.space();\n this.word(\"mixins\");\n this.space();\n this.printList(node.mixins, node);\n }\n if (node.implements && node.implements.length) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements, node);\n }\n this.space();\n this.print(node.body, node);\n}\n\nexport function _variance(\n this: Printer,\n node:\n | t.TypeParameter\n | t.ObjectTypeIndexer\n | t.ObjectTypeProperty\n | t.ClassProperty\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty,\n) {\n if (node.variance) {\n if (node.variance.kind === \"plus\") {\n this.token(\"+\");\n } else if (node.variance.kind === \"minus\") {\n this.token(\"-\");\n }\n }\n}\n\nexport function InterfaceDeclaration(\n this: Printer,\n node: t.InterfaceDeclaration | t.DeclareInterface,\n) {\n this.word(\"interface\");\n this.space();\n this._interfaceish(node);\n}\n\nfunction andSeparator(this: Printer) {\n this.space();\n this.token(\"&\");\n this.space();\n}\n\nexport function InterfaceTypeAnnotation(\n this: Printer,\n node: t.InterfaceTypeAnnotation,\n) {\n this.word(\"interface\");\n if (node.extends && node.extends.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(node.extends, node);\n }\n this.space();\n this.print(node.body, node);\n}\n\nexport function IntersectionTypeAnnotation(\n this: Printer,\n node: t.IntersectionTypeAnnotation,\n) {\n this.printJoin(node.types, node, { separator: andSeparator });\n}\n\nexport function MixedTypeAnnotation(this: Printer) {\n this.word(\"mixed\");\n}\n\nexport function EmptyTypeAnnotation(this: Printer) {\n this.word(\"empty\");\n}\n\nexport function NullableTypeAnnotation(\n this: Printer,\n node: t.NullableTypeAnnotation,\n) {\n this.token(\"?\");\n this.print(node.typeAnnotation, node);\n}\n\nexport {\n NumericLiteral as NumberLiteralTypeAnnotation,\n StringLiteral as StringLiteralTypeAnnotation,\n} from \"./types\";\n\nexport function NumberTypeAnnotation(this: Printer) {\n this.word(\"number\");\n}\n\nexport function StringTypeAnnotation(this: Printer) {\n this.word(\"string\");\n}\n\nexport function ThisTypeAnnotation(this: Printer) {\n this.word(\"this\");\n}\n\nexport function TupleTypeAnnotation(\n this: Printer,\n node: t.TupleTypeAnnotation,\n) {\n this.token(\"[\");\n this.printList(node.types, node);\n this.token(\"]\");\n}\n\nexport function TypeofTypeAnnotation(\n this: Printer,\n node: t.TypeofTypeAnnotation,\n) {\n this.word(\"typeof\");\n this.space();\n this.print(node.argument, node);\n}\n\nexport function TypeAlias(\n this: Printer,\n node: t.TypeAlias | t.DeclareTypeAlias,\n) {\n this.word(\"type\");\n this.space();\n this.print(node.id, node);\n this.print(node.typeParameters, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.right, node);\n this.semicolon();\n}\n\nexport function TypeAnnotation(this: Printer, node: t.TypeAnnotation) {\n this.token(\":\");\n this.space();\n // @ts-expect-error todo(flow->ts) can this be removed? `.optional` looks to be not existing property\n if (node.optional) this.token(\"?\");\n this.print(node.typeAnnotation, node);\n}\n\nexport function TypeParameterInstantiation(\n this: Printer,\n node: t.TypeParameterInstantiation,\n): void {\n this.token(\"<\");\n this.printList(node.params, node, {});\n this.token(\">\");\n}\n\nexport { TypeParameterInstantiation as TypeParameterDeclaration };\n\nexport function TypeParameter(this: Printer, node: t.TypeParameter) {\n this._variance(node);\n\n this.word(node.name);\n\n if (node.bound) {\n this.print(node.bound, node);\n }\n\n if (node.default) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.default, node);\n }\n}\n\nexport function OpaqueType(\n this: Printer,\n node: t.OpaqueType | t.DeclareOpaqueType,\n) {\n this.word(\"opaque\");\n this.space();\n this.word(\"type\");\n this.space();\n this.print(node.id, node);\n this.print(node.typeParameters, node);\n if (node.supertype) {\n this.token(\":\");\n this.space();\n this.print(node.supertype, node);\n }\n\n if (node.impltype) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.impltype, node);\n }\n this.semicolon();\n}\n\nexport function ObjectTypeAnnotation(\n this: Printer,\n node: t.ObjectTypeAnnotation,\n) {\n if (node.exact) {\n this.token(\"{|\");\n } else {\n this.token(\"{\");\n }\n\n // TODO: remove the array fallbacks and instead enforce the types to require an array\n const props = [\n ...node.properties,\n ...(node.callProperties || []),\n ...(node.indexers || []),\n ...(node.internalSlots || []),\n ];\n\n if (props.length) {\n this.newline();\n\n this.space();\n\n this.printJoin(props, node, {\n addNewlines(leading) {\n if (leading && !props[0]) return 1;\n },\n indent: true,\n statement: true,\n iterator: () => {\n if (props.length !== 1 || node.inexact) {\n this.token(\",\");\n this.space();\n }\n },\n });\n\n this.space();\n }\n\n if (node.inexact) {\n this.indent();\n this.token(\"...\");\n if (props.length) {\n this.newline();\n }\n this.dedent();\n }\n\n if (node.exact) {\n this.token(\"|}\");\n } else {\n this.token(\"}\");\n }\n}\n\nexport function ObjectTypeInternalSlot(\n this: Printer,\n node: t.ObjectTypeInternalSlot,\n) {\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.token(\"[\");\n this.token(\"[\");\n this.print(node.id, node);\n this.token(\"]\");\n this.token(\"]\");\n if (node.optional) this.token(\"?\");\n if (!node.method) {\n this.token(\":\");\n this.space();\n }\n this.print(node.value, node);\n}\n\nexport function ObjectTypeCallProperty(\n this: Printer,\n node: t.ObjectTypeCallProperty,\n) {\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.print(node.value, node);\n}\n\nexport function ObjectTypeIndexer(this: Printer, node: t.ObjectTypeIndexer) {\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this._variance(node);\n this.token(\"[\");\n if (node.id) {\n this.print(node.id, node);\n this.token(\":\");\n this.space();\n }\n this.print(node.key, node);\n this.token(\"]\");\n this.token(\":\");\n this.space();\n this.print(node.value, node);\n}\n\nexport function ObjectTypeProperty(this: Printer, node: t.ObjectTypeProperty) {\n if (node.proto) {\n this.word(\"proto\");\n this.space();\n }\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n if (node.kind === \"get\" || node.kind === \"set\") {\n this.word(node.kind);\n this.space();\n }\n this._variance(node);\n this.print(node.key, node);\n if (node.optional) this.token(\"?\");\n if (!node.method) {\n this.token(\":\");\n this.space();\n }\n this.print(node.value, node);\n}\n\nexport function ObjectTypeSpreadProperty(\n this: Printer,\n node: t.ObjectTypeSpreadProperty,\n) {\n this.token(\"...\");\n this.print(node.argument, node);\n}\n\nexport function QualifiedTypeIdentifier(\n this: Printer,\n node: t.QualifiedTypeIdentifier,\n) {\n this.print(node.qualification, node);\n this.token(\".\");\n this.print(node.id, node);\n}\n\nexport function SymbolTypeAnnotation(this: Printer) {\n this.word(\"symbol\");\n}\n\nfunction orSeparator(this: Printer) {\n this.space();\n this.token(\"|\");\n this.space();\n}\n\nexport function UnionTypeAnnotation(\n this: Printer,\n node: t.UnionTypeAnnotation,\n) {\n this.printJoin(node.types, node, { separator: orSeparator });\n}\n\nexport function TypeCastExpression(this: Printer, node: t.TypeCastExpression) {\n this.token(\"(\");\n this.print(node.expression, node);\n this.print(node.typeAnnotation, node);\n this.token(\")\");\n}\n\nexport function Variance(this: Printer, node: t.Variance) {\n if (node.kind === \"plus\") {\n this.token(\"+\");\n } else {\n this.token(\"-\");\n }\n}\n\nexport function VoidTypeAnnotation(this: Printer) {\n this.word(\"void\");\n}\n\nexport function IndexedAccessType(this: Printer, node: t.IndexedAccessType) {\n this.print(node.objectType, node, true);\n this.token(\"[\");\n this.print(node.indexType, node);\n this.token(\"]\");\n}\n\nexport function OptionalIndexedAccessType(\n this: Printer,\n node: t.OptionalIndexedAccessType,\n) {\n this.print(node.objectType, node);\n if (node.optional) {\n this.token(\"?.\");\n }\n this.token(\"[\");\n this.print(node.indexType, node);\n this.token(\"]\");\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/index.js b/node_modules/@babel/generator/lib/generators/index.js new file mode 100755 index 0000000..25ad36b --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/index.js @@ -0,0 +1,128 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var _templateLiterals = require("./template-literals"); +Object.keys(_templateLiterals).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _templateLiterals[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _templateLiterals[key]; + } + }); +}); +var _expressions = require("./expressions"); +Object.keys(_expressions).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _expressions[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _expressions[key]; + } + }); +}); +var _statements = require("./statements"); +Object.keys(_statements).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _statements[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _statements[key]; + } + }); +}); +var _classes = require("./classes"); +Object.keys(_classes).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _classes[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _classes[key]; + } + }); +}); +var _methods = require("./methods"); +Object.keys(_methods).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _methods[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _methods[key]; + } + }); +}); +var _modules = require("./modules"); +Object.keys(_modules).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _modules[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _modules[key]; + } + }); +}); +var _types = require("./types"); +Object.keys(_types).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _types[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _types[key]; + } + }); +}); +var _flow = require("./flow"); +Object.keys(_flow).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _flow[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _flow[key]; + } + }); +}); +var _base = require("./base"); +Object.keys(_base).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _base[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _base[key]; + } + }); +}); +var _jsx = require("./jsx"); +Object.keys(_jsx).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _jsx[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _jsx[key]; + } + }); +}); +var _typescript = require("./typescript"); +Object.keys(_typescript).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _typescript[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _typescript[key]; + } + }); +}); + +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/generator/lib/generators/index.js.map b/node_modules/@babel/generator/lib/generators/index.js.map new file mode 100755 index 0000000..a03022f --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":[],"sources":["../../src/generators/index.ts"],"sourcesContent":["export * from \"./template-literals\";\nexport * from \"./expressions\";\nexport * from \"./statements\";\nexport * from \"./classes\";\nexport * from \"./methods\";\nexport * from \"./modules\";\nexport * from \"./types\";\nexport * from \"./flow\";\nexport * from \"./base\";\nexport * from \"./jsx\";\nexport * from \"./typescript\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/jsx.js b/node_modules/@babel/generator/lib/generators/jsx.js new file mode 100755 index 0000000..4b8dd7a --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/jsx.js @@ -0,0 +1,123 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.JSXAttribute = JSXAttribute; +exports.JSXClosingElement = JSXClosingElement; +exports.JSXClosingFragment = JSXClosingFragment; +exports.JSXElement = JSXElement; +exports.JSXEmptyExpression = JSXEmptyExpression; +exports.JSXExpressionContainer = JSXExpressionContainer; +exports.JSXFragment = JSXFragment; +exports.JSXIdentifier = JSXIdentifier; +exports.JSXMemberExpression = JSXMemberExpression; +exports.JSXNamespacedName = JSXNamespacedName; +exports.JSXOpeningElement = JSXOpeningElement; +exports.JSXOpeningFragment = JSXOpeningFragment; +exports.JSXSpreadAttribute = JSXSpreadAttribute; +exports.JSXSpreadChild = JSXSpreadChild; +exports.JSXText = JSXText; +function JSXAttribute(node) { + this.print(node.name, node); + if (node.value) { + this.tokenChar(61); + this.print(node.value, node); + } +} +function JSXIdentifier(node) { + this.word(node.name); +} +function JSXNamespacedName(node) { + this.print(node.namespace, node); + this.tokenChar(58); + this.print(node.name, node); +} +function JSXMemberExpression(node) { + this.print(node.object, node); + this.tokenChar(46); + this.print(node.property, node); +} +function JSXSpreadAttribute(node) { + this.tokenChar(123); + this.token("..."); + this.print(node.argument, node); + this.tokenChar(125); +} +function JSXExpressionContainer(node) { + this.tokenChar(123); + this.print(node.expression, node); + this.tokenChar(125); +} +function JSXSpreadChild(node) { + this.tokenChar(123); + this.token("..."); + this.print(node.expression, node); + this.tokenChar(125); +} +function JSXText(node) { + const raw = this.getPossibleRaw(node); + if (raw !== undefined) { + this.token(raw, true); + } else { + this.token(node.value, true); + } +} +function JSXElement(node) { + const open = node.openingElement; + this.print(open, node); + if (open.selfClosing) return; + this.indent(); + for (const child of node.children) { + this.print(child, node); + } + this.dedent(); + this.print(node.closingElement, node); +} +function spaceSeparator() { + this.space(); +} +function JSXOpeningElement(node) { + this.tokenChar(60); + this.print(node.name, node); + this.print(node.typeParameters, node); + if (node.attributes.length > 0) { + this.space(); + this.printJoin(node.attributes, node, { + separator: spaceSeparator + }); + } + if (node.selfClosing) { + this.space(); + this.token("/>"); + } else { + this.tokenChar(62); + } +} +function JSXClosingElement(node) { + this.token(" 0) {\n this.space();\n this.printJoin(node.attributes, node, { separator: spaceSeparator });\n }\n if (node.selfClosing) {\n this.space();\n this.token(\"/>\");\n } else {\n this.token(\">\");\n }\n}\n\nexport function JSXClosingElement(this: Printer, node: t.JSXClosingElement) {\n this.token(\"\");\n}\n\nexport function JSXEmptyExpression(this: Printer) {\n // This node is empty, so forcefully print its inner comments.\n this.printInnerComments();\n}\n\nexport function JSXFragment(this: Printer, node: t.JSXFragment) {\n this.print(node.openingFragment, node);\n\n this.indent();\n for (const child of node.children) {\n this.print(child, node);\n }\n this.dedent();\n\n this.print(node.closingFragment, node);\n}\n\nexport function JSXOpeningFragment(this: Printer) {\n this.token(\"<\");\n this.token(\">\");\n}\n\nexport function JSXClosingFragment(this: Printer) {\n this.token(\"\");\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/methods.js b/node_modules/@babel/generator/lib/generators/methods.js new file mode 100755 index 0000000..f078472 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/methods.js @@ -0,0 +1,137 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ArrowFunctionExpression = ArrowFunctionExpression; +exports.FunctionDeclaration = exports.FunctionExpression = FunctionExpression; +exports._functionHead = _functionHead; +exports._methodHead = _methodHead; +exports._param = _param; +exports._parameters = _parameters; +exports._params = _params; +exports._predicate = _predicate; +var _t = require("@babel/types"); +const { + isIdentifier +} = _t; +function _params(node) { + this.print(node.typeParameters, node); + this.tokenChar(40); + this._parameters(node.params, node); + this.tokenChar(41); + const noLineTerminator = node.type === "ArrowFunctionExpression"; + this.print(node.returnType, node, noLineTerminator); + this._noLineTerminator = noLineTerminator; +} +function _parameters(parameters, parent) { + const paramLength = parameters.length; + for (let i = 0; i < paramLength; i++) { + this._param(parameters[i], parent); + if (i < parameters.length - 1) { + this.tokenChar(44); + this.space(); + } + } +} +function _param(parameter, parent) { + this.printJoin(parameter.decorators, parameter); + this.print(parameter, parent); + if ( + parameter.optional) { + this.tokenChar(63); + } + + this.print( + parameter.typeAnnotation, parameter); +} + +function _methodHead(node) { + const kind = node.kind; + const key = node.key; + if (kind === "get" || kind === "set") { + this.word(kind); + this.space(); + } + if (node.async) { + this.word("async", true); + this.space(); + } + if (kind === "method" || + kind === "init") { + if (node.generator) { + this.tokenChar(42); + } + } + if (node.computed) { + this.tokenChar(91); + this.print(key, node); + this.tokenChar(93); + } else { + this.print(key, node); + } + if ( + node.optional) { + this.tokenChar(63); + } + this._params(node); +} +function _predicate(node, noLineTerminatorAfter) { + if (node.predicate) { + if (!node.returnType) { + this.tokenChar(58); + } + this.space(); + this.print(node.predicate, node, noLineTerminatorAfter); + } +} +function _functionHead(node) { + if (node.async) { + this.word("async"); + this._endsWithInnerRaw = false; + this.space(); + } + this.word("function"); + if (node.generator) { + this._endsWithInnerRaw = false; + this.tokenChar(42); + } + this.space(); + if (node.id) { + this.print(node.id, node); + } + this._params(node); + if (node.type !== "TSDeclareFunction") { + this._predicate(node); + } +} +function FunctionExpression(node) { + this._functionHead(node); + this.space(); + this.print(node.body, node); +} +function ArrowFunctionExpression(node) { + if (node.async) { + this.word("async", true); + this.space(); + } + + let firstParam; + if (!this.format.retainLines && node.params.length === 1 && isIdentifier(firstParam = node.params[0]) && !hasTypesOrComments(node, firstParam)) { + this.print(firstParam, node, true); + } else { + this._params(node); + } + this._predicate(node, true); + this.space(); + this.printInnerComments(); + this.token("=>"); + this.space(); + this.print(node.body, node); +} +function hasTypesOrComments(node, param) { + var _param$leadingComment, _param$trailingCommen; + return !!(node.typeParameters || node.returnType || node.predicate || param.typeAnnotation || param.optional || (_param$leadingComment = param.leadingComments) != null && _param$leadingComment.length || (_param$trailingCommen = param.trailingComments) != null && _param$trailingCommen.length); +} + +//# sourceMappingURL=methods.js.map diff --git a/node_modules/@babel/generator/lib/generators/methods.js.map b/node_modules/@babel/generator/lib/generators/methods.js.map new file mode 100755 index 0000000..c8b10bf --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/methods.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isIdentifier","_params","node","print","typeParameters","token","_parameters","params","noLineTerminator","type","returnType","_noLineTerminator","parameters","parent","paramLength","length","i","_param","space","parameter","printJoin","decorators","optional","typeAnnotation","_methodHead","kind","key","word","async","generator","computed","_predicate","noLineTerminatorAfter","predicate","_functionHead","_endsWithInnerRaw","id","FunctionExpression","body","ArrowFunctionExpression","firstParam","format","retainLines","hasTypesOrComments","printInnerComments","param","leadingComments","trailingComments"],"sources":["../../src/generators/methods.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport { isIdentifier } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nexport function _params(\n this: Printer,\n node: t.Function | t.TSDeclareMethod | t.TSDeclareFunction,\n) {\n this.print(node.typeParameters, node);\n this.token(\"(\");\n this._parameters(node.params, node);\n this.token(\")\");\n\n const noLineTerminator = node.type === \"ArrowFunctionExpression\";\n this.print(node.returnType, node, noLineTerminator);\n\n this._noLineTerminator = noLineTerminator;\n}\n\nexport function _parameters(\n this: Printer,\n parameters: t.Function[\"params\"],\n parent:\n | t.Function\n | t.TSIndexSignature\n | t.TSDeclareMethod\n | t.TSDeclareFunction\n | t.TSFunctionType\n | t.TSConstructorType,\n) {\n const paramLength = parameters.length;\n for (let i = 0; i < paramLength; i++) {\n this._param(parameters[i], parent);\n\n if (i < parameters.length - 1) {\n this.token(\",\");\n this.space();\n }\n }\n}\n\nexport function _param(\n this: Printer,\n parameter: t.Identifier | t.RestElement | t.Pattern | t.TSParameterProperty,\n parent?:\n | t.Function\n | t.TSIndexSignature\n | t.TSDeclareMethod\n | t.TSDeclareFunction\n | t.TSFunctionType\n | t.TSConstructorType,\n) {\n this.printJoin(parameter.decorators, parameter);\n this.print(parameter, parent);\n if (\n // @ts-expect-error optional is not in TSParameterProperty\n parameter.optional\n ) {\n this.token(\"?\"); // TS / flow\n }\n\n this.print(\n // @ts-expect-error typeAnnotation is not in TSParameterProperty\n parameter.typeAnnotation,\n parameter,\n ); // TS / flow\n}\n\nexport function _methodHead(this: Printer, node: t.Method | t.TSDeclareMethod) {\n const kind = node.kind;\n const key = node.key;\n\n if (kind === \"get\" || kind === \"set\") {\n this.word(kind);\n this.space();\n }\n\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n\n if (\n kind === \"method\" ||\n // @ts-expect-error Fixme: kind: \"init\" is not defined\n kind === \"init\"\n ) {\n if (node.generator) {\n this.token(\"*\");\n }\n }\n\n if (node.computed) {\n this.token(\"[\");\n this.print(key, node);\n this.token(\"]\");\n } else {\n this.print(key, node);\n }\n\n if (\n // @ts-expect-error optional is not in ObjectMethod\n node.optional\n ) {\n // TS\n this.token(\"?\");\n }\n\n this._params(node);\n}\n\nexport function _predicate(\n this: Printer,\n node:\n | t.FunctionDeclaration\n | t.FunctionExpression\n | t.ArrowFunctionExpression,\n noLineTerminatorAfter?: boolean,\n) {\n if (node.predicate) {\n if (!node.returnType) {\n this.token(\":\");\n }\n this.space();\n this.print(node.predicate, node, noLineTerminatorAfter);\n }\n}\n\nexport function _functionHead(\n this: Printer,\n node: t.FunctionDeclaration | t.FunctionExpression | t.TSDeclareFunction,\n) {\n if (node.async) {\n this.word(\"async\");\n // We prevent inner comments from being printed here,\n // so that they are always consistently printed in the\n // same place regardless of the function type.\n this._endsWithInnerRaw = false;\n this.space();\n }\n this.word(\"function\");\n if (node.generator) {\n // We prevent inner comments from being printed here,\n // so that they are always consistently printed in the\n // same place regardless of the function type.\n this._endsWithInnerRaw = false;\n this.token(\"*\");\n }\n\n this.space();\n if (node.id) {\n this.print(node.id, node);\n }\n\n this._params(node);\n if (node.type !== \"TSDeclareFunction\") {\n this._predicate(node);\n }\n}\n\nexport function FunctionExpression(this: Printer, node: t.FunctionExpression) {\n this._functionHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport { FunctionExpression as FunctionDeclaration };\n\nexport function ArrowFunctionExpression(\n this: Printer,\n node: t.ArrowFunctionExpression,\n) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n\n // Try to avoid printing parens in simple cases, but only if we're pretty\n // sure that they aren't needed by type annotations or potential newlines.\n let firstParam;\n if (\n !this.format.retainLines &&\n node.params.length === 1 &&\n isIdentifier((firstParam = node.params[0])) &&\n !hasTypesOrComments(node, firstParam)\n ) {\n this.print(firstParam, node, true);\n } else {\n this._params(node);\n }\n\n this._predicate(node, true);\n this.space();\n // When printing (x)/*1*/=>{}, we remove the parentheses\n // and thus there aren't two contiguous inner tokens.\n // We forcefully print inner comments here.\n this.printInnerComments();\n this.token(\"=>\");\n\n this.space();\n\n this.print(node.body, node);\n}\n\nfunction hasTypesOrComments(\n node: t.ArrowFunctionExpression,\n param: t.Identifier,\n): boolean {\n return !!(\n node.typeParameters ||\n node.returnType ||\n node.predicate ||\n param.typeAnnotation ||\n param.optional ||\n // Flow does not support `foo /*: string*/ => {};`\n param.leadingComments?.length ||\n param.trailingComments?.length\n );\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/modules.js b/node_modules/@babel/generator/lib/generators/modules.js new file mode 100755 index 0000000..d51d013 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/modules.js @@ -0,0 +1,244 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ExportAllDeclaration = ExportAllDeclaration; +exports.ExportDefaultDeclaration = ExportDefaultDeclaration; +exports.ExportDefaultSpecifier = ExportDefaultSpecifier; +exports.ExportNamedDeclaration = ExportNamedDeclaration; +exports.ExportNamespaceSpecifier = ExportNamespaceSpecifier; +exports.ExportSpecifier = ExportSpecifier; +exports.ImportAttribute = ImportAttribute; +exports.ImportDeclaration = ImportDeclaration; +exports.ImportDefaultSpecifier = ImportDefaultSpecifier; +exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier; +exports.ImportSpecifier = ImportSpecifier; +exports._printAssertions = _printAssertions; +var _t = require("@babel/types"); +const { + isClassDeclaration, + isExportDefaultSpecifier, + isExportNamespaceSpecifier, + isImportDefaultSpecifier, + isImportNamespaceSpecifier, + isStatement +} = _t; +function ImportSpecifier(node) { + if (node.importKind === "type" || node.importKind === "typeof") { + this.word(node.importKind); + this.space(); + } + this.print(node.imported, node); + if (node.local && node.local.name !== node.imported.name) { + this.space(); + this.word("as"); + this.space(); + this.print(node.local, node); + } +} +function ImportDefaultSpecifier(node) { + this.print(node.local, node); +} +function ExportDefaultSpecifier(node) { + this.print(node.exported, node); +} +function ExportSpecifier(node) { + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + this.print(node.local, node); + if (node.exported && node.local.name !== node.exported.name) { + this.space(); + this.word("as"); + this.space(); + this.print(node.exported, node); + } +} +function ExportNamespaceSpecifier(node) { + this.tokenChar(42); + this.space(); + this.word("as"); + this.space(); + this.print(node.exported, node); +} +function _printAssertions(node) { + this.word("assert"); + this.space(); + this.tokenChar(123); + this.space(); + this.printList(node.assertions, node); + this.space(); + this.tokenChar(125); +} +function ExportAllDeclaration(node) { + var _node$assertions; + this.word("export"); + this.space(); + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + this.tokenChar(42); + this.space(); + this.word("from"); + this.space(); + if ((_node$assertions = node.assertions) != null && _node$assertions.length) { + this.print(node.source, node, true); + this.space(); + this._printAssertions(node); + } else { + this.print(node.source, node); + } + this.semicolon(); +} +function ExportNamedDeclaration(node) { + { + if (this.format.decoratorsBeforeExport && isClassDeclaration(node.declaration)) { + this.printJoin(node.declaration.decorators, node); + } + } + this.word("export"); + this.space(); + if (node.declaration) { + const declar = node.declaration; + this.print(declar, node); + if (!isStatement(declar)) this.semicolon(); + } else { + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + const specifiers = node.specifiers.slice(0); + + let hasSpecial = false; + for (;;) { + const first = specifiers[0]; + if (isExportDefaultSpecifier(first) || isExportNamespaceSpecifier(first)) { + hasSpecial = true; + this.print(specifiers.shift(), node); + if (specifiers.length) { + this.tokenChar(44); + this.space(); + } + } else { + break; + } + } + if (specifiers.length || !specifiers.length && !hasSpecial) { + this.tokenChar(123); + if (specifiers.length) { + this.space(); + this.printList(specifiers, node); + this.space(); + } + this.tokenChar(125); + } + if (node.source) { + var _node$assertions2; + this.space(); + this.word("from"); + this.space(); + if ((_node$assertions2 = node.assertions) != null && _node$assertions2.length) { + this.print(node.source, node, true); + this.space(); + this._printAssertions(node); + } else { + this.print(node.source, node); + } + } + this.semicolon(); + } +} +function ExportDefaultDeclaration(node) { + { + if (this.format.decoratorsBeforeExport && isClassDeclaration(node.declaration)) { + this.printJoin(node.declaration.decorators, node); + } + } + this.word("export"); + this.noIndentInnerCommentsHere(); + this.space(); + this.word("default"); + this.space(); + const declar = node.declaration; + this.print(declar, node); + if (!isStatement(declar)) this.semicolon(); +} +function ImportDeclaration(node) { + var _node$assertions3; + this.word("import"); + this.space(); + const isTypeKind = node.importKind === "type" || node.importKind === "typeof"; + if (isTypeKind) { + this.noIndentInnerCommentsHere(); + this.word(node.importKind); + this.space(); + } else if (node.module) { + this.noIndentInnerCommentsHere(); + this.word("module"); + this.space(); + } + const specifiers = node.specifiers.slice(0); + const hasSpecifiers = !!specifiers.length; + while (hasSpecifiers) { + const first = specifiers[0]; + if (isImportDefaultSpecifier(first) || isImportNamespaceSpecifier(first)) { + this.print(specifiers.shift(), node); + if (specifiers.length) { + this.tokenChar(44); + this.space(); + } + } else { + break; + } + } + if (specifiers.length) { + this.tokenChar(123); + this.space(); + this.printList(specifiers, node); + this.space(); + this.tokenChar(125); + } else if (isTypeKind && !hasSpecifiers) { + this.tokenChar(123); + this.tokenChar(125); + } + if (hasSpecifiers || isTypeKind) { + this.space(); + this.word("from"); + this.space(); + } + if ((_node$assertions3 = node.assertions) != null && _node$assertions3.length) { + this.print(node.source, node, true); + this.space(); + this._printAssertions(node); + } else { + this.print(node.source, node); + } + { + var _node$attributes; + if ((_node$attributes = node.attributes) != null && _node$attributes.length) { + this.space(); + this.word("with"); + this.space(); + this.printList(node.attributes, node); + } + } + this.semicolon(); +} +function ImportAttribute(node) { + this.print(node.key); + this.tokenChar(58); + this.space(); + this.print(node.value); +} +function ImportNamespaceSpecifier(node) { + this.tokenChar(42); + this.space(); + this.word("as"); + this.space(); + this.print(node.local, node); +} + +//# sourceMappingURL=modules.js.map diff --git a/node_modules/@babel/generator/lib/generators/modules.js.map b/node_modules/@babel/generator/lib/generators/modules.js.map new file mode 100755 index 0000000..db8d9ed --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/modules.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isClassDeclaration","isExportDefaultSpecifier","isExportNamespaceSpecifier","isImportDefaultSpecifier","isImportNamespaceSpecifier","isStatement","ImportSpecifier","node","importKind","word","space","print","imported","local","name","ImportDefaultSpecifier","ExportDefaultSpecifier","exported","ExportSpecifier","exportKind","ExportNamespaceSpecifier","token","_printAssertions","printList","assertions","ExportAllDeclaration","length","source","semicolon","ExportNamedDeclaration","format","decoratorsBeforeExport","declaration","printJoin","decorators","declar","specifiers","slice","hasSpecial","first","shift","ExportDefaultDeclaration","noIndentInnerCommentsHere","ImportDeclaration","isTypeKind","module","hasSpecifiers","attributes","ImportAttribute","key","value","ImportNamespaceSpecifier"],"sources":["../../src/generators/modules.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport {\n isClassDeclaration,\n isExportDefaultSpecifier,\n isExportNamespaceSpecifier,\n isImportDefaultSpecifier,\n isImportNamespaceSpecifier,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nexport function ImportSpecifier(this: Printer, node: t.ImportSpecifier) {\n if (node.importKind === \"type\" || node.importKind === \"typeof\") {\n this.word(node.importKind);\n this.space();\n }\n\n this.print(node.imported, node);\n // @ts-expect-error todo(flow-ts) maybe check node type instead of relying on name to be undefined on t.StringLiteral\n if (node.local && node.local.name !== node.imported.name) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.local, node);\n }\n}\n\nexport function ImportDefaultSpecifier(\n this: Printer,\n node: t.ImportDefaultSpecifier,\n) {\n this.print(node.local, node);\n}\n\nexport function ExportDefaultSpecifier(\n this: Printer,\n node: t.ExportDefaultSpecifier,\n) {\n this.print(node.exported, node);\n}\n\nexport function ExportSpecifier(this: Printer, node: t.ExportSpecifier) {\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n\n this.print(node.local, node);\n // @ts-expect-error todo(flow-ts) maybe check node type instead of relying on name to be undefined on t.StringLiteral\n if (node.exported && node.local.name !== node.exported.name) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.exported, node);\n }\n}\n\nexport function ExportNamespaceSpecifier(\n this: Printer,\n node: t.ExportNamespaceSpecifier,\n) {\n this.token(\"*\");\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.exported, node);\n}\n\nexport function _printAssertions(\n this: Printer,\n node: Extract,\n) {\n this.word(\"assert\");\n this.space();\n this.token(\"{\");\n this.space();\n this.printList(node.assertions, node);\n this.space();\n this.token(\"}\");\n}\n\nexport function ExportAllDeclaration(\n this: Printer,\n node: t.ExportAllDeclaration | t.DeclareExportAllDeclaration,\n) {\n this.word(\"export\");\n this.space();\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n this.token(\"*\");\n this.space();\n this.word(\"from\");\n this.space();\n // @ts-expect-error Fixme: assertions is not defined in DeclareExportAllDeclaration\n if (node.assertions?.length) {\n this.print(node.source, node, true);\n this.space();\n // @ts-expect-error Fixme: assertions is not defined in DeclareExportAllDeclaration\n this._printAssertions(node);\n } else {\n this.print(node.source, node);\n }\n\n this.semicolon();\n}\n\nexport function ExportNamedDeclaration(\n this: Printer,\n node: t.ExportNamedDeclaration,\n) {\n if (!process.env.BABEL_8_BREAKING) {\n if (\n this.format.decoratorsBeforeExport &&\n isClassDeclaration(node.declaration)\n ) {\n this.printJoin(node.declaration.decorators, node);\n }\n }\n\n this.word(\"export\");\n this.space();\n if (node.declaration) {\n const declar = node.declaration;\n this.print(declar, node);\n if (!isStatement(declar)) this.semicolon();\n } else {\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n\n const specifiers = node.specifiers.slice(0);\n\n // print \"special\" specifiers first\n let hasSpecial = false;\n for (;;) {\n const first = specifiers[0];\n if (\n isExportDefaultSpecifier(first) ||\n isExportNamespaceSpecifier(first)\n ) {\n hasSpecial = true;\n this.print(specifiers.shift(), node);\n if (specifiers.length) {\n this.token(\",\");\n this.space();\n }\n } else {\n break;\n }\n }\n\n if (specifiers.length || (!specifiers.length && !hasSpecial)) {\n this.token(\"{\");\n if (specifiers.length) {\n this.space();\n this.printList(specifiers, node);\n this.space();\n }\n this.token(\"}\");\n }\n\n if (node.source) {\n this.space();\n this.word(\"from\");\n this.space();\n if (node.assertions?.length) {\n this.print(node.source, node, true);\n this.space();\n this._printAssertions(node);\n } else {\n this.print(node.source, node);\n }\n }\n\n this.semicolon();\n }\n}\n\nexport function ExportDefaultDeclaration(\n this: Printer,\n node: t.ExportDefaultDeclaration,\n) {\n if (!process.env.BABEL_8_BREAKING) {\n if (\n this.format.decoratorsBeforeExport &&\n isClassDeclaration(node.declaration)\n ) {\n this.printJoin(node.declaration.decorators, node);\n }\n }\n\n this.word(\"export\");\n this.noIndentInnerCommentsHere();\n this.space();\n this.word(\"default\");\n this.space();\n const declar = node.declaration;\n this.print(declar, node);\n if (!isStatement(declar)) this.semicolon();\n}\n\nexport function ImportDeclaration(this: Printer, node: t.ImportDeclaration) {\n this.word(\"import\");\n this.space();\n\n const isTypeKind = node.importKind === \"type\" || node.importKind === \"typeof\";\n if (isTypeKind) {\n this.noIndentInnerCommentsHere();\n this.word(node.importKind);\n this.space();\n } else if (node.module) {\n this.noIndentInnerCommentsHere();\n this.word(\"module\");\n this.space();\n }\n\n const specifiers = node.specifiers.slice(0);\n const hasSpecifiers = !!specifiers.length;\n // print \"special\" specifiers first. The loop condition is constant,\n // but there is a \"break\" in the body.\n while (hasSpecifiers) {\n const first = specifiers[0];\n if (isImportDefaultSpecifier(first) || isImportNamespaceSpecifier(first)) {\n this.print(specifiers.shift(), node);\n if (specifiers.length) {\n this.token(\",\");\n this.space();\n }\n } else {\n break;\n }\n }\n\n if (specifiers.length) {\n this.token(\"{\");\n this.space();\n this.printList(specifiers, node);\n this.space();\n this.token(\"}\");\n } else if (isTypeKind && !hasSpecifiers) {\n this.token(\"{\");\n this.token(\"}\");\n }\n\n if (hasSpecifiers || isTypeKind) {\n this.space();\n this.word(\"from\");\n this.space();\n }\n\n if (node.assertions?.length) {\n this.print(node.source, node, true);\n this.space();\n this._printAssertions(node);\n } else {\n this.print(node.source, node);\n }\n if (!process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 supports module attributes\n if (node.attributes?.length) {\n this.space();\n this.word(\"with\");\n this.space();\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 supports module attributes\n this.printList(node.attributes, node);\n }\n }\n\n this.semicolon();\n}\n\nexport function ImportAttribute(this: Printer, node: t.ImportAttribute) {\n this.print(node.key);\n this.token(\":\");\n this.space();\n this.print(node.value);\n}\n\nexport function ImportNamespaceSpecifier(\n this: Printer,\n node: t.ImportNamespaceSpecifier,\n) {\n this.token(\"*\");\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.local, node);\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/statements.js b/node_modules/@babel/generator/lib/generators/statements.js new file mode 100755 index 0000000..72a9e7e --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/statements.js @@ -0,0 +1,280 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BreakStatement = BreakStatement; +exports.CatchClause = CatchClause; +exports.ContinueStatement = ContinueStatement; +exports.DebuggerStatement = DebuggerStatement; +exports.DoWhileStatement = DoWhileStatement; +exports.ForOfStatement = exports.ForInStatement = void 0; +exports.ForStatement = ForStatement; +exports.IfStatement = IfStatement; +exports.LabeledStatement = LabeledStatement; +exports.ReturnStatement = ReturnStatement; +exports.SwitchCase = SwitchCase; +exports.SwitchStatement = SwitchStatement; +exports.ThrowStatement = ThrowStatement; +exports.TryStatement = TryStatement; +exports.VariableDeclaration = VariableDeclaration; +exports.VariableDeclarator = VariableDeclarator; +exports.WhileStatement = WhileStatement; +exports.WithStatement = WithStatement; +var _t = require("@babel/types"); +const { + isFor, + isForStatement, + isIfStatement, + isStatement +} = _t; +function WithStatement(node) { + this.word("with"); + this.space(); + this.tokenChar(40); + this.print(node.object, node); + this.tokenChar(41); + this.printBlock(node); +} +function IfStatement(node) { + this.word("if"); + this.space(); + this.tokenChar(40); + this.print(node.test, node); + this.tokenChar(41); + this.space(); + const needsBlock = node.alternate && isIfStatement(getLastStatement(node.consequent)); + if (needsBlock) { + this.tokenChar(123); + this.newline(); + this.indent(); + } + this.printAndIndentOnComments(node.consequent, node); + if (needsBlock) { + this.dedent(); + this.newline(); + this.tokenChar(125); + } + if (node.alternate) { + if (this.endsWith(125)) this.space(); + this.word("else"); + this.space(); + this.printAndIndentOnComments(node.alternate, node); + } +} + +function getLastStatement(statement) { + const { + body + } = statement; + if (isStatement(body) === false) { + return statement; + } + return getLastStatement(body); +} +function ForStatement(node) { + this.word("for"); + this.space(); + this.tokenChar(40); + this.inForStatementInitCounter++; + this.print(node.init, node); + this.inForStatementInitCounter--; + this.tokenChar(59); + if (node.test) { + this.space(); + this.print(node.test, node); + } + this.tokenChar(59); + if (node.update) { + this.space(); + this.print(node.update, node); + } + this.tokenChar(41); + this.printBlock(node); +} +function WhileStatement(node) { + this.word("while"); + this.space(); + this.tokenChar(40); + this.print(node.test, node); + this.tokenChar(41); + this.printBlock(node); +} +function ForXStatement(node) { + this.word("for"); + this.space(); + const isForOf = node.type === "ForOfStatement"; + if (isForOf && node.await) { + this.word("await"); + this.space(); + } + this.noIndentInnerCommentsHere(); + this.tokenChar(40); + this.print(node.left, node); + this.space(); + this.word(isForOf ? "of" : "in"); + this.space(); + this.print(node.right, node); + this.tokenChar(41); + this.printBlock(node); +} +const ForInStatement = ForXStatement; +exports.ForInStatement = ForInStatement; +const ForOfStatement = ForXStatement; +exports.ForOfStatement = ForOfStatement; +function DoWhileStatement(node) { + this.word("do"); + this.space(); + this.print(node.body, node); + this.space(); + this.word("while"); + this.space(); + this.tokenChar(40); + this.print(node.test, node); + this.tokenChar(41); + this.semicolon(); +} +function printStatementAfterKeyword(printer, node, parent, isLabel) { + if (node) { + printer.space(); + printer.printTerminatorless(node, parent, isLabel); + } + printer.semicolon(); +} +function BreakStatement(node) { + this.word("break"); + printStatementAfterKeyword(this, node.label, node, true); +} +function ContinueStatement(node) { + this.word("continue"); + printStatementAfterKeyword(this, node.label, node, true); +} +function ReturnStatement(node) { + this.word("return"); + printStatementAfterKeyword(this, node.argument, node, false); +} +function ThrowStatement(node) { + this.word("throw"); + printStatementAfterKeyword(this, node.argument, node, false); +} +function LabeledStatement(node) { + this.print(node.label, node); + this.tokenChar(58); + this.space(); + this.print(node.body, node); +} +function TryStatement(node) { + this.word("try"); + this.space(); + this.print(node.block, node); + this.space(); + + if (node.handlers) { + this.print(node.handlers[0], node); + } else { + this.print(node.handler, node); + } + if (node.finalizer) { + this.space(); + this.word("finally"); + this.space(); + this.print(node.finalizer, node); + } +} +function CatchClause(node) { + this.word("catch"); + this.space(); + if (node.param) { + this.tokenChar(40); + this.print(node.param, node); + this.print(node.param.typeAnnotation, node); + this.tokenChar(41); + this.space(); + } + this.print(node.body, node); +} +function SwitchStatement(node) { + this.word("switch"); + this.space(); + this.tokenChar(40); + this.print(node.discriminant, node); + this.tokenChar(41); + this.space(); + this.tokenChar(123); + this.printSequence(node.cases, node, { + indent: true, + addNewlines(leading, cas) { + if (!leading && node.cases[node.cases.length - 1] === cas) return -1; + } + }); + this.tokenChar(125); +} +function SwitchCase(node) { + if (node.test) { + this.word("case"); + this.space(); + this.print(node.test, node); + this.tokenChar(58); + } else { + this.word("default"); + this.tokenChar(58); + } + if (node.consequent.length) { + this.newline(); + this.printSequence(node.consequent, node, { + indent: true + }); + } +} +function DebuggerStatement() { + this.word("debugger"); + this.semicolon(); +} +function VariableDeclaration(node, parent) { + if (node.declare) { + this.word("declare"); + this.space(); + } + const { + kind + } = node; + this.word(kind, kind === "using"); + this.space(); + let hasInits = false; + if (!isFor(parent)) { + for (const declar of node.declarations) { + if (declar.init) { + hasInits = true; + } + } + } + + this.printList(node.declarations, node, { + separator: hasInits ? function () { + this.tokenChar(44); + this.newline(); + } : undefined, + indent: node.declarations.length > 1 ? true : false + }); + if (isFor(parent)) { + if (isForStatement(parent)) { + if (parent.init === node) return; + } else { + if (parent.left === node) return; + } + } + this.semicolon(); +} +function VariableDeclarator(node) { + this.print(node.id, node); + if (node.definite) this.tokenChar(33); + this.print(node.id.typeAnnotation, node); + if (node.init) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.init, node); + } +} + +//# sourceMappingURL=statements.js.map diff --git a/node_modules/@babel/generator/lib/generators/statements.js.map b/node_modules/@babel/generator/lib/generators/statements.js.map new file mode 100755 index 0000000..a165f35 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/statements.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isFor","isForStatement","isIfStatement","isStatement","WithStatement","node","word","space","token","print","object","printBlock","IfStatement","test","needsBlock","alternate","getLastStatement","consequent","newline","indent","printAndIndentOnComments","dedent","endsWith","statement","body","ForStatement","inForStatementInitCounter","init","update","WhileStatement","ForXStatement","isForOf","type","await","noIndentInnerCommentsHere","left","right","ForInStatement","ForOfStatement","DoWhileStatement","semicolon","printStatementAfterKeyword","printer","parent","isLabel","printTerminatorless","BreakStatement","label","ContinueStatement","ReturnStatement","argument","ThrowStatement","LabeledStatement","TryStatement","block","handlers","handler","finalizer","CatchClause","param","typeAnnotation","SwitchStatement","discriminant","printSequence","cases","addNewlines","leading","cas","length","SwitchCase","DebuggerStatement","VariableDeclaration","declare","kind","hasInits","declar","declarations","printList","separator","undefined","VariableDeclarator","id","definite"],"sources":["../../src/generators/statements.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport {\n isFor,\n isForStatement,\n isIfStatement,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nexport function WithStatement(this: Printer, node: t.WithStatement) {\n this.word(\"with\");\n this.space();\n this.token(\"(\");\n this.print(node.object, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function IfStatement(this: Printer, node: t.IfStatement) {\n this.word(\"if\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.space();\n\n const needsBlock =\n node.alternate && isIfStatement(getLastStatement(node.consequent));\n if (needsBlock) {\n this.token(\"{\");\n this.newline();\n this.indent();\n }\n\n this.printAndIndentOnComments(node.consequent, node);\n\n if (needsBlock) {\n this.dedent();\n this.newline();\n this.token(\"}\");\n }\n\n if (node.alternate) {\n if (this.endsWith(charCodes.rightCurlyBrace)) this.space();\n this.word(\"else\");\n this.space();\n this.printAndIndentOnComments(node.alternate, node);\n }\n}\n\n// Recursively get the last statement.\nfunction getLastStatement(statement: t.Statement): t.Statement {\n // @ts-expect-error: If statement.body is empty or not a Node, isStatement will return false\n const { body } = statement;\n if (isStatement(body) === false) {\n return statement;\n }\n\n return getLastStatement(body);\n}\n\nexport function ForStatement(this: Printer, node: t.ForStatement) {\n this.word(\"for\");\n this.space();\n this.token(\"(\");\n\n this.inForStatementInitCounter++;\n this.print(node.init, node);\n this.inForStatementInitCounter--;\n this.token(\";\");\n\n if (node.test) {\n this.space();\n this.print(node.test, node);\n }\n this.token(\";\");\n\n if (node.update) {\n this.space();\n this.print(node.update, node);\n }\n\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function WhileStatement(this: Printer, node: t.WhileStatement) {\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nfunction ForXStatement(this: Printer, node: t.ForXStatement) {\n this.word(\"for\");\n this.space();\n const isForOf = node.type === \"ForOfStatement\";\n if (isForOf && node.await) {\n this.word(\"await\");\n this.space();\n }\n this.noIndentInnerCommentsHere();\n this.token(\"(\");\n this.print(node.left, node);\n this.space();\n this.word(isForOf ? \"of\" : \"in\");\n this.space();\n this.print(node.right, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport const ForInStatement = ForXStatement;\nexport const ForOfStatement = ForXStatement;\n\nexport function DoWhileStatement(this: Printer, node: t.DoWhileStatement) {\n this.word(\"do\");\n this.space();\n this.print(node.body, node);\n this.space();\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.semicolon();\n}\n\nfunction printStatementAfterKeyword(\n printer: Printer,\n node: t.Node,\n parent: t.Node,\n isLabel: boolean,\n) {\n if (node) {\n printer.space();\n printer.printTerminatorless(node, parent, isLabel);\n }\n\n printer.semicolon();\n}\n\nexport function BreakStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"break\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ContinueStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"continue\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ReturnStatement(this: Printer, node: t.ReturnStatement) {\n this.word(\"return\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function ThrowStatement(this: Printer, node: t.ThrowStatement) {\n this.word(\"throw\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function LabeledStatement(this: Printer, node: t.LabeledStatement) {\n this.print(node.label, node);\n this.token(\":\");\n this.space();\n this.print(node.body, node);\n}\n\nexport function TryStatement(this: Printer, node: t.TryStatement) {\n this.word(\"try\");\n this.space();\n this.print(node.block, node);\n this.space();\n\n // Esprima bug puts the catch clause in a `handlers` array.\n // see https://code.google.com/p/esprima/issues/detail?id=433\n // We run into this from regenerator generated ast.\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n if (node.handlers) {\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n this.print(node.handlers[0], node);\n } else {\n this.print(node.handler, node);\n }\n\n if (node.finalizer) {\n this.space();\n this.word(\"finally\");\n this.space();\n this.print(node.finalizer, node);\n }\n}\n\nexport function CatchClause(this: Printer, node: t.CatchClause) {\n this.word(\"catch\");\n this.space();\n if (node.param) {\n this.token(\"(\");\n this.print(node.param, node);\n this.print(node.param.typeAnnotation, node);\n this.token(\")\");\n this.space();\n }\n this.print(node.body, node);\n}\n\nexport function SwitchStatement(this: Printer, node: t.SwitchStatement) {\n this.word(\"switch\");\n this.space();\n this.token(\"(\");\n this.print(node.discriminant, node);\n this.token(\")\");\n this.space();\n this.token(\"{\");\n\n this.printSequence(node.cases, node, {\n indent: true,\n addNewlines(leading, cas) {\n if (!leading && node.cases[node.cases.length - 1] === cas) return -1;\n },\n });\n\n this.token(\"}\");\n}\n\nexport function SwitchCase(this: Printer, node: t.SwitchCase) {\n if (node.test) {\n this.word(\"case\");\n this.space();\n this.print(node.test, node);\n this.token(\":\");\n } else {\n this.word(\"default\");\n this.token(\":\");\n }\n\n if (node.consequent.length) {\n this.newline();\n this.printSequence(node.consequent, node, { indent: true });\n }\n}\n\nexport function DebuggerStatement(this: Printer) {\n this.word(\"debugger\");\n this.semicolon();\n}\n\nexport function VariableDeclaration(\n this: Printer,\n node: t.VariableDeclaration,\n parent: t.Node,\n) {\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n const { kind } = node;\n this.word(kind, kind === \"using\");\n this.space();\n\n let hasInits = false;\n // don't add whitespace to loop heads\n if (!isFor(parent)) {\n for (const declar of node.declarations) {\n if (declar.init) {\n // has an init so let's split it up over multiple lines\n hasInits = true;\n }\n }\n }\n\n //\n // use a pretty separator when we aren't in compact mode, have initializers and don't have retainLines on\n // this will format declarations like:\n //\n // let foo = \"bar\", bar = \"foo\";\n //\n // into\n //\n // let foo = \"bar\",\n // bar = \"foo\";\n //\n\n this.printList(node.declarations, node, {\n separator: hasInits\n ? function (this: Printer) {\n this.token(\",\");\n this.newline();\n }\n : undefined,\n indent: node.declarations.length > 1 ? true : false,\n });\n\n if (isFor(parent)) {\n // don't give semicolons to these nodes since they'll be inserted in the parent generator\n if (isForStatement(parent)) {\n if (parent.init === node) return;\n } else {\n if (parent.left === node) return;\n }\n }\n\n this.semicolon();\n}\n\nexport function VariableDeclarator(this: Printer, node: t.VariableDeclarator) {\n this.print(node.id, node);\n if (node.definite) this.token(\"!\"); // TS\n // @ts-expect-error todo(flow-ts) Property 'typeAnnotation' does not exist on type 'MemberExpression'.\n this.print(node.id.typeAnnotation, node);\n if (node.init) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.init, node);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;AAKsB;EAJpBA,KAAK;EACLC,cAAc;EACdC,aAAa;EACbC;AAAW;AAKN,SAASC,aAAa,CAAgBC,IAAqB,EAAE;EAClE,IAAI,CAACC,IAAI,CAAC,MAAM,CAAC;EACjB,IAAI,CAACC,KAAK,EAAE;EACZ,IAAI,CAACC,SAAK,IAAK;EACf,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACK,MAAM,EAAEL,IAAI,CAAC;EAC7B,IAAI,CAACG,SAAK,IAAK;EACf,IAAI,CAACG,UAAU,CAACN,IAAI,CAAC;AACvB;AAEO,SAASO,WAAW,CAAgBP,IAAmB,EAAE;EAC9D,IAAI,CAACC,IAAI,CAAC,IAAI,CAAC;EACf,IAAI,CAACC,KAAK,EAAE;EACZ,IAAI,CAACC,SAAK,IAAK;EACf,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACQ,IAAI,EAAER,IAAI,CAAC;EAC3B,IAAI,CAACG,SAAK,IAAK;EACf,IAAI,CAACD,KAAK,EAAE;EAEZ,MAAMO,UAAU,GACdT,IAAI,CAACU,SAAS,IAAIb,aAAa,CAACc,gBAAgB,CAACX,IAAI,CAACY,UAAU,CAAC,CAAC;EACpE,IAAIH,UAAU,EAAE;IACd,IAAI,CAACN,SAAK,KAAK;IACf,IAAI,CAACU,OAAO,EAAE;IACd,IAAI,CAACC,MAAM,EAAE;EACf;EAEA,IAAI,CAACC,wBAAwB,CAACf,IAAI,CAACY,UAAU,EAAEZ,IAAI,CAAC;EAEpD,IAAIS,UAAU,EAAE;IACd,IAAI,CAACO,MAAM,EAAE;IACb,IAAI,CAACH,OAAO,EAAE;IACd,IAAI,CAACV,SAAK,KAAK;EACjB;EAEA,IAAIH,IAAI,CAACU,SAAS,EAAE;IAClB,IAAI,IAAI,CAACO,QAAQ,KAA2B,EAAE,IAAI,CAACf,KAAK,EAAE;IAC1D,IAAI,CAACD,IAAI,CAAC,MAAM,CAAC;IACjB,IAAI,CAACC,KAAK,EAAE;IACZ,IAAI,CAACa,wBAAwB,CAACf,IAAI,CAACU,SAAS,EAAEV,IAAI,CAAC;EACrD;AACF;;AAGA,SAASW,gBAAgB,CAACO,SAAsB,EAAe;EAE7D,MAAM;IAAEC;EAAK,CAAC,GAAGD,SAAS;EAC1B,IAAIpB,WAAW,CAACqB,IAAI,CAAC,KAAK,KAAK,EAAE;IAC/B,OAAOD,SAAS;EAClB;EAEA,OAAOP,gBAAgB,CAACQ,IAAI,CAAC;AAC/B;AAEO,SAASC,YAAY,CAAgBpB,IAAoB,EAAE;EAChE,IAAI,CAACC,IAAI,CAAC,KAAK,CAAC;EAChB,IAAI,CAACC,KAAK,EAAE;EACZ,IAAI,CAACC,SAAK,IAAK;EAEf,IAAI,CAACkB,yBAAyB,EAAE;EAChC,IAAI,CAACjB,KAAK,CAACJ,IAAI,CAACsB,IAAI,EAAEtB,IAAI,CAAC;EAC3B,IAAI,CAACqB,yBAAyB,EAAE;EAChC,IAAI,CAAClB,SAAK,IAAK;EAEf,IAAIH,IAAI,CAACQ,IAAI,EAAE;IACb,IAAI,CAACN,KAAK,EAAE;IACZ,IAAI,CAACE,KAAK,CAACJ,IAAI,CAACQ,IAAI,EAAER,IAAI,CAAC;EAC7B;EACA,IAAI,CAACG,SAAK,IAAK;EAEf,IAAIH,IAAI,CAACuB,MAAM,EAAE;IACf,IAAI,CAACrB,KAAK,EAAE;IACZ,IAAI,CAACE,KAAK,CAACJ,IAAI,CAACuB,MAAM,EAAEvB,IAAI,CAAC;EAC/B;EAEA,IAAI,CAACG,SAAK,IAAK;EACf,IAAI,CAACG,UAAU,CAACN,IAAI,CAAC;AACvB;AAEO,SAASwB,cAAc,CAAgBxB,IAAsB,EAAE;EACpE,IAAI,CAACC,IAAI,CAAC,OAAO,CAAC;EAClB,IAAI,CAACC,KAAK,EAAE;EACZ,IAAI,CAACC,SAAK,IAAK;EACf,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACQ,IAAI,EAAER,IAAI,CAAC;EAC3B,IAAI,CAACG,SAAK,IAAK;EACf,IAAI,CAACG,UAAU,CAACN,IAAI,CAAC;AACvB;AAEA,SAASyB,aAAa,CAAgBzB,IAAqB,EAAE;EAC3D,IAAI,CAACC,IAAI,CAAC,KAAK,CAAC;EAChB,IAAI,CAACC,KAAK,EAAE;EACZ,MAAMwB,OAAO,GAAG1B,IAAI,CAAC2B,IAAI,KAAK,gBAAgB;EAC9C,IAAID,OAAO,IAAI1B,IAAI,CAAC4B,KAAK,EAAE;IACzB,IAAI,CAAC3B,IAAI,CAAC,OAAO,CAAC;IAClB,IAAI,CAACC,KAAK,EAAE;EACd;EACA,IAAI,CAAC2B,yBAAyB,EAAE;EAChC,IAAI,CAAC1B,SAAK,IAAK;EACf,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC8B,IAAI,EAAE9B,IAAI,CAAC;EAC3B,IAAI,CAACE,KAAK,EAAE;EACZ,IAAI,CAACD,IAAI,CAACyB,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;EAChC,IAAI,CAACxB,KAAK,EAAE;EACZ,IAAI,CAACE,KAAK,CAACJ,IAAI,CAAC+B,KAAK,EAAE/B,IAAI,CAAC;EAC5B,IAAI,CAACG,SAAK,IAAK;EACf,IAAI,CAACG,UAAU,CAACN,IAAI,CAAC;AACvB;AAEO,MAAMgC,cAAc,GAAGP,aAAa;AAAC;AACrC,MAAMQ,cAAc,GAAGR,aAAa;AAAC;AAErC,SAASS,gBAAgB,CAAgBlC,IAAwB,EAAE;EACxE,IAAI,CAACC,IAAI,CAAC,IAAI,CAAC;EACf,IAAI,CAACC,KAAK,EAAE;EACZ,IAAI,CAACE,KAAK,CAACJ,IAAI,CAACmB,IAAI,EAAEnB,IAAI,CAAC;EAC3B,IAAI,CAACE,KAAK,EAAE;EACZ,IAAI,CAACD,IAAI,CAAC,OAAO,CAAC;EAClB,IAAI,CAACC,KAAK,EAAE;EACZ,IAAI,CAACC,SAAK,IAAK;EACf,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACQ,IAAI,EAAER,IAAI,CAAC;EAC3B,IAAI,CAACG,SAAK,IAAK;EACf,IAAI,CAACgC,SAAS,EAAE;AAClB;AAEA,SAASC,0BAA0B,CACjCC,OAAgB,EAChBrC,IAAY,EACZsC,MAAc,EACdC,OAAgB,EAChB;EACA,IAAIvC,IAAI,EAAE;IACRqC,OAAO,CAACnC,KAAK,EAAE;IACfmC,OAAO,CAACG,mBAAmB,CAACxC,IAAI,EAAEsC,MAAM,EAAEC,OAAO,CAAC;EACpD;EAEAF,OAAO,CAACF,SAAS,EAAE;AACrB;AAEO,SAASM,cAAc,CAAgBzC,IAAyB,EAAE;EACvE,IAAI,CAACC,IAAI,CAAC,OAAO,CAAC;EAClBmC,0BAA0B,CAAC,IAAI,EAAEpC,IAAI,CAAC0C,KAAK,EAAE1C,IAAI,EAAE,IAAI,CAAC;AAC1D;AAEO,SAAS2C,iBAAiB,CAAgB3C,IAAyB,EAAE;EAC1E,IAAI,CAACC,IAAI,CAAC,UAAU,CAAC;EACrBmC,0BAA0B,CAAC,IAAI,EAAEpC,IAAI,CAAC0C,KAAK,EAAE1C,IAAI,EAAE,IAAI,CAAC;AAC1D;AAEO,SAAS4C,eAAe,CAAgB5C,IAAuB,EAAE;EACtE,IAAI,CAACC,IAAI,CAAC,QAAQ,CAAC;EACnBmC,0BAA0B,CAAC,IAAI,EAAEpC,IAAI,CAAC6C,QAAQ,EAAE7C,IAAI,EAAE,KAAK,CAAC;AAC9D;AAEO,SAAS8C,cAAc,CAAgB9C,IAAsB,EAAE;EACpE,IAAI,CAACC,IAAI,CAAC,OAAO,CAAC;EAClBmC,0BAA0B,CAAC,IAAI,EAAEpC,IAAI,CAAC6C,QAAQ,EAAE7C,IAAI,EAAE,KAAK,CAAC;AAC9D;AAEO,SAAS+C,gBAAgB,CAAgB/C,IAAwB,EAAE;EACxE,IAAI,CAACI,KAAK,CAACJ,IAAI,CAAC0C,KAAK,EAAE1C,IAAI,CAAC;EAC5B,IAAI,CAACG,SAAK,IAAK;EACf,IAAI,CAACD,KAAK,EAAE;EACZ,IAAI,CAACE,KAAK,CAACJ,IAAI,CAACmB,IAAI,EAAEnB,IAAI,CAAC;AAC7B;AAEO,SAASgD,YAAY,CAAgBhD,IAAoB,EAAE;EAChE,IAAI,CAACC,IAAI,CAAC,KAAK,CAAC;EAChB,IAAI,CAACC,KAAK,EAAE;EACZ,IAAI,CAACE,KAAK,CAACJ,IAAI,CAACiD,KAAK,EAAEjD,IAAI,CAAC;EAC5B,IAAI,CAACE,KAAK,EAAE;;EAMZ,IAAIF,IAAI,CAACkD,QAAQ,EAAE;IAEjB,IAAI,CAAC9C,KAAK,CAACJ,IAAI,CAACkD,QAAQ,CAAC,CAAC,CAAC,EAAElD,IAAI,CAAC;EACpC,CAAC,MAAM;IACL,IAAI,CAACI,KAAK,CAACJ,IAAI,CAACmD,OAAO,EAAEnD,IAAI,CAAC;EAChC;EAEA,IAAIA,IAAI,CAACoD,SAAS,EAAE;IAClB,IAAI,CAAClD,KAAK,EAAE;IACZ,IAAI,CAACD,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACC,KAAK,EAAE;IACZ,IAAI,CAACE,KAAK,CAACJ,IAAI,CAACoD,SAAS,EAAEpD,IAAI,CAAC;EAClC;AACF;AAEO,SAASqD,WAAW,CAAgBrD,IAAmB,EAAE;EAC9D,IAAI,CAACC,IAAI,CAAC,OAAO,CAAC;EAClB,IAAI,CAACC,KAAK,EAAE;EACZ,IAAIF,IAAI,CAACsD,KAAK,EAAE;IACd,IAAI,CAACnD,SAAK,IAAK;IACf,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACsD,KAAK,EAAEtD,IAAI,CAAC;IAC5B,IAAI,CAACI,KAAK,CAACJ,IAAI,CAACsD,KAAK,CAACC,cAAc,EAAEvD,IAAI,CAAC;IAC3C,IAAI,CAACG,SAAK,IAAK;IACf,IAAI,CAACD,KAAK,EAAE;EACd;EACA,IAAI,CAACE,KAAK,CAACJ,IAAI,CAACmB,IAAI,EAAEnB,IAAI,CAAC;AAC7B;AAEO,SAASwD,eAAe,CAAgBxD,IAAuB,EAAE;EACtE,IAAI,CAACC,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACC,KAAK,EAAE;EACZ,IAAI,CAACC,SAAK,IAAK;EACf,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACyD,YAAY,EAAEzD,IAAI,CAAC;EACnC,IAAI,CAACG,SAAK,IAAK;EACf,IAAI,CAACD,KAAK,EAAE;EACZ,IAAI,CAACC,SAAK,KAAK;EAEf,IAAI,CAACuD,aAAa,CAAC1D,IAAI,CAAC2D,KAAK,EAAE3D,IAAI,EAAE;IACnCc,MAAM,EAAE,IAAI;IACZ8C,WAAW,CAACC,OAAO,EAAEC,GAAG,EAAE;MACxB,IAAI,CAACD,OAAO,IAAI7D,IAAI,CAAC2D,KAAK,CAAC3D,IAAI,CAAC2D,KAAK,CAACI,MAAM,GAAG,CAAC,CAAC,KAAKD,GAAG,EAAE,OAAO,CAAC,CAAC;IACtE;EACF,CAAC,CAAC;EAEF,IAAI,CAAC3D,SAAK,KAAK;AACjB;AAEO,SAAS6D,UAAU,CAAgBhE,IAAkB,EAAE;EAC5D,IAAIA,IAAI,CAACQ,IAAI,EAAE;IACb,IAAI,CAACP,IAAI,CAAC,MAAM,CAAC;IACjB,IAAI,CAACC,KAAK,EAAE;IACZ,IAAI,CAACE,KAAK,CAACJ,IAAI,CAACQ,IAAI,EAAER,IAAI,CAAC;IAC3B,IAAI,CAACG,SAAK,IAAK;EACjB,CAAC,MAAM;IACL,IAAI,CAACF,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACE,SAAK,IAAK;EACjB;EAEA,IAAIH,IAAI,CAACY,UAAU,CAACmD,MAAM,EAAE;IAC1B,IAAI,CAAClD,OAAO,EAAE;IACd,IAAI,CAAC6C,aAAa,CAAC1D,IAAI,CAACY,UAAU,EAAEZ,IAAI,EAAE;MAAEc,MAAM,EAAE;IAAK,CAAC,CAAC;EAC7D;AACF;AAEO,SAASmD,iBAAiB,GAAgB;EAC/C,IAAI,CAAChE,IAAI,CAAC,UAAU,CAAC;EACrB,IAAI,CAACkC,SAAS,EAAE;AAClB;AAEO,SAAS+B,mBAAmB,CAEjClE,IAA2B,EAC3BsC,MAAc,EACd;EACA,IAAItC,IAAI,CAACmE,OAAO,EAAE;IAEhB,IAAI,CAAClE,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACC,KAAK,EAAE;EACd;EAEA,MAAM;IAAEkE;EAAK,CAAC,GAAGpE,IAAI;EACrB,IAAI,CAACC,IAAI,CAACmE,IAAI,EAAEA,IAAI,KAAK,OAAO,CAAC;EACjC,IAAI,CAAClE,KAAK,EAAE;EAEZ,IAAImE,QAAQ,GAAG,KAAK;EAEpB,IAAI,CAAC1E,KAAK,CAAC2C,MAAM,CAAC,EAAE;IAClB,KAAK,MAAMgC,MAAM,IAAItE,IAAI,CAACuE,YAAY,EAAE;MACtC,IAAID,MAAM,CAAChD,IAAI,EAAE;QAEf+C,QAAQ,GAAG,IAAI;MACjB;IACF;EACF;;EAcA,IAAI,CAACG,SAAS,CAACxE,IAAI,CAACuE,YAAY,EAAEvE,IAAI,EAAE;IACtCyE,SAAS,EAAEJ,QAAQ,GACf,YAAyB;MACvB,IAAI,CAAClE,SAAK,IAAK;MACf,IAAI,CAACU,OAAO,EAAE;IAChB,CAAC,GACD6D,SAAS;IACb5D,MAAM,EAAEd,IAAI,CAACuE,YAAY,CAACR,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG;EAChD,CAAC,CAAC;EAEF,IAAIpE,KAAK,CAAC2C,MAAM,CAAC,EAAE;IAEjB,IAAI1C,cAAc,CAAC0C,MAAM,CAAC,EAAE;MAC1B,IAAIA,MAAM,CAAChB,IAAI,KAAKtB,IAAI,EAAE;IAC5B,CAAC,MAAM;MACL,IAAIsC,MAAM,CAACR,IAAI,KAAK9B,IAAI,EAAE;IAC5B;EACF;EAEA,IAAI,CAACmC,SAAS,EAAE;AAClB;AAEO,SAASwC,kBAAkB,CAAgB3E,IAA0B,EAAE;EAC5E,IAAI,CAACI,KAAK,CAACJ,IAAI,CAAC4E,EAAE,EAAE5E,IAAI,CAAC;EACzB,IAAIA,IAAI,CAAC6E,QAAQ,EAAE,IAAI,CAAC1E,SAAK,IAAK;EAElC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC4E,EAAE,CAACrB,cAAc,EAAEvD,IAAI,CAAC;EACxC,IAAIA,IAAI,CAACsB,IAAI,EAAE;IACb,IAAI,CAACpB,KAAK,EAAE;IACZ,IAAI,CAACC,SAAK,IAAK;IACf,IAAI,CAACD,KAAK,EAAE;IACZ,IAAI,CAACE,KAAK,CAACJ,IAAI,CAACsB,IAAI,EAAEtB,IAAI,CAAC;EAC7B;AACF"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/template-literals.js b/node_modules/@babel/generator/lib/generators/template-literals.js new file mode 100755 index 0000000..737d33c --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/template-literals.js @@ -0,0 +1,30 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TaggedTemplateExpression = TaggedTemplateExpression; +exports.TemplateElement = TemplateElement; +exports.TemplateLiteral = TemplateLiteral; +function TaggedTemplateExpression(node) { + this.print(node.tag, node); + this.print(node.typeParameters, node); + this.print(node.quasi, node); +} +function TemplateElement(node, parent) { + const isFirst = parent.quasis[0] === node; + const isLast = parent.quasis[parent.quasis.length - 1] === node; + const value = (isFirst ? "`" : "}") + node.value.raw + (isLast ? "`" : "${"); + this.token(value, true); +} +function TemplateLiteral(node) { + const quasis = node.quasis; + for (let i = 0; i < quasis.length; i++) { + this.print(quasis[i], node); + if (i + 1 < quasis.length) { + this.print(node.expressions[i], node); + } + } +} + +//# sourceMappingURL=template-literals.js.map diff --git a/node_modules/@babel/generator/lib/generators/template-literals.js.map b/node_modules/@babel/generator/lib/generators/template-literals.js.map new file mode 100755 index 0000000..6d89ddb --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/template-literals.js.map @@ -0,0 +1 @@ +{"version":3,"names":["TaggedTemplateExpression","node","print","tag","typeParameters","quasi","TemplateElement","parent","isFirst","quasis","isLast","length","value","raw","token","TemplateLiteral","i","expressions"],"sources":["../../src/generators/template-literals.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport type * as t from \"@babel/types\";\n\nexport function TaggedTemplateExpression(\n this: Printer,\n node: t.TaggedTemplateExpression,\n) {\n this.print(node.tag, node);\n this.print(node.typeParameters, node); // TS\n this.print(node.quasi, node);\n}\n\nexport function TemplateElement(\n this: Printer,\n node: t.TemplateElement,\n parent: t.TemplateLiteral,\n) {\n const isFirst = parent.quasis[0] === node;\n const isLast = parent.quasis[parent.quasis.length - 1] === node;\n\n const value = (isFirst ? \"`\" : \"}\") + node.value.raw + (isLast ? \"`\" : \"${\");\n\n this.token(value, true);\n}\n\nexport function TemplateLiteral(this: Printer, node: t.TemplateLiteral) {\n const quasis = node.quasis;\n\n for (let i = 0; i < quasis.length; i++) {\n this.print(quasis[i], node);\n\n if (i + 1 < quasis.length) {\n this.print(node.expressions[i], node);\n }\n }\n}\n"],"mappings":";;;;;;;;AAGO,SAASA,wBAAwB,CAEtCC,IAAgC,EAChC;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,EAAEF,IAAI,CAAC;EAC1B,IAAI,CAACC,KAAK,CAACD,IAAI,CAACG,cAAc,EAAEH,IAAI,CAAC;EACrC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACI,KAAK,EAAEJ,IAAI,CAAC;AAC9B;AAEO,SAASK,eAAe,CAE7BL,IAAuB,EACvBM,MAAyB,EACzB;EACA,MAAMC,OAAO,GAAGD,MAAM,CAACE,MAAM,CAAC,CAAC,CAAC,KAAKR,IAAI;EACzC,MAAMS,MAAM,GAAGH,MAAM,CAACE,MAAM,CAACF,MAAM,CAACE,MAAM,CAACE,MAAM,GAAG,CAAC,CAAC,KAAKV,IAAI;EAE/D,MAAMW,KAAK,GAAG,CAACJ,OAAO,GAAG,GAAG,GAAG,GAAG,IAAIP,IAAI,CAACW,KAAK,CAACC,GAAG,IAAIH,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;EAE5E,IAAI,CAACI,KAAK,CAACF,KAAK,EAAE,IAAI,CAAC;AACzB;AAEO,SAASG,eAAe,CAAgBd,IAAuB,EAAE;EACtE,MAAMQ,MAAM,GAAGR,IAAI,CAACQ,MAAM;EAE1B,KAAK,IAAIO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,MAAM,CAACE,MAAM,EAAEK,CAAC,EAAE,EAAE;IACtC,IAAI,CAACd,KAAK,CAACO,MAAM,CAACO,CAAC,CAAC,EAAEf,IAAI,CAAC;IAE3B,IAAIe,CAAC,GAAG,CAAC,GAAGP,MAAM,CAACE,MAAM,EAAE;MACzB,IAAI,CAACT,KAAK,CAACD,IAAI,CAACgB,WAAW,CAACD,CAAC,CAAC,EAAEf,IAAI,CAAC;IACvC;EACF;AACF"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/types.js b/node_modules/@babel/generator/lib/generators/types.js new file mode 100755 index 0000000..a13edbb --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/types.js @@ -0,0 +1,224 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ArgumentPlaceholder = ArgumentPlaceholder; +exports.ArrayPattern = exports.ArrayExpression = ArrayExpression; +exports.BigIntLiteral = BigIntLiteral; +exports.BooleanLiteral = BooleanLiteral; +exports.DecimalLiteral = DecimalLiteral; +exports.Identifier = Identifier; +exports.NullLiteral = NullLiteral; +exports.NumericLiteral = NumericLiteral; +exports.ObjectPattern = exports.ObjectExpression = ObjectExpression; +exports.ObjectMethod = ObjectMethod; +exports.ObjectProperty = ObjectProperty; +exports.PipelineBareFunction = PipelineBareFunction; +exports.PipelinePrimaryTopicReference = PipelinePrimaryTopicReference; +exports.PipelineTopicExpression = PipelineTopicExpression; +exports.RecordExpression = RecordExpression; +exports.RegExpLiteral = RegExpLiteral; +exports.SpreadElement = exports.RestElement = RestElement; +exports.StringLiteral = StringLiteral; +exports.TopicReference = TopicReference; +exports.TupleExpression = TupleExpression; +var _t = require("@babel/types"); +var _jsesc = require("jsesc"); +const { + isAssignmentPattern, + isIdentifier +} = _t; +function Identifier(node) { + this.word(node.name); +} +function ArgumentPlaceholder() { + this.tokenChar(63); +} +function RestElement(node) { + this.token("..."); + this.print(node.argument, node); +} +function ObjectExpression(node) { + const props = node.properties; + this.tokenChar(123); + if (props.length) { + this.space(); + this.printList(props, node, { + indent: true, + statement: true + }); + this.space(); + } + this.sourceWithOffset("end", node.loc, 0, -1); + this.tokenChar(125); +} +function ObjectMethod(node) { + this.printJoin(node.decorators, node); + this._methodHead(node); + this.space(); + this.print(node.body, node); +} +function ObjectProperty(node) { + this.printJoin(node.decorators, node); + if (node.computed) { + this.tokenChar(91); + this.print(node.key, node); + this.tokenChar(93); + } else { + if (isAssignmentPattern(node.value) && isIdentifier(node.key) && + node.key.name === node.value.left.name) { + this.print(node.value, node); + return; + } + this.print(node.key, node); + + if (node.shorthand && isIdentifier(node.key) && isIdentifier(node.value) && node.key.name === node.value.name) { + return; + } + } + this.tokenChar(58); + this.space(); + this.print(node.value, node); +} +function ArrayExpression(node) { + const elems = node.elements; + const len = elems.length; + this.tokenChar(91); + for (let i = 0; i < elems.length; i++) { + const elem = elems[i]; + if (elem) { + if (i > 0) this.space(); + this.print(elem, node); + if (i < len - 1) this.tokenChar(44); + } else { + this.tokenChar(44); + } + } + this.tokenChar(93); +} +function RecordExpression(node) { + const props = node.properties; + let startToken; + let endToken; + if (this.format.recordAndTupleSyntaxType === "bar") { + startToken = "{|"; + endToken = "|}"; + } else if (this.format.recordAndTupleSyntaxType !== "hash" && this.format.recordAndTupleSyntaxType != null) { + throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)} received).`); + } else { + startToken = "#{"; + endToken = "}"; + } + this.token(startToken); + if (props.length) { + this.space(); + this.printList(props, node, { + indent: true, + statement: true + }); + this.space(); + } + this.token(endToken); +} +function TupleExpression(node) { + const elems = node.elements; + const len = elems.length; + let startToken; + let endToken; + if (this.format.recordAndTupleSyntaxType === "bar") { + startToken = "[|"; + endToken = "|]"; + } else if (this.format.recordAndTupleSyntaxType === "hash") { + startToken = "#["; + endToken = "]"; + } else { + throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`); + } + this.token(startToken); + for (let i = 0; i < elems.length; i++) { + const elem = elems[i]; + if (elem) { + if (i > 0) this.space(); + this.print(elem, node); + if (i < len - 1) this.tokenChar(44); + } + } + this.token(endToken); +} +function RegExpLiteral(node) { + this.word(`/${node.pattern}/${node.flags}`); +} +function BooleanLiteral(node) { + this.word(node.value ? "true" : "false"); +} +function NullLiteral() { + this.word("null"); +} +function NumericLiteral(node) { + const raw = this.getPossibleRaw(node); + const opts = this.format.jsescOption; + const value = node.value + ""; + if (opts.numbers) { + this.number(_jsesc(node.value, opts)); + } else if (raw == null) { + this.number(value); + } else if (this.format.minified) { + this.number(raw.length < value.length ? raw : value); + } else { + this.number(raw); + } +} +function StringLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.token(raw); + return; + } + const val = _jsesc(node.value, Object.assign(this.format.jsescOption, this.format.jsonCompatibleStrings && { + json: true + })); + return this.token(val); +} +function BigIntLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.word(raw); + return; + } + this.word(node.value + "n"); +} +function DecimalLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.word(raw); + return; + } + this.word(node.value + "m"); +} + +const validTopicTokenSet = new Set(["^^", "@@", "^", "%", "#"]); +function TopicReference() { + const { + topicToken + } = this.format; + if (validTopicTokenSet.has(topicToken)) { + this.token(topicToken); + } else { + const givenTopicTokenJSON = JSON.stringify(topicToken); + const validTopics = Array.from(validTopicTokenSet, v => JSON.stringify(v)); + throw new Error(`The "topicToken" generator option must be one of ` + `${validTopics.join(", ")} (${givenTopicTokenJSON} received instead).`); + } +} + +function PipelineTopicExpression(node) { + this.print(node.expression, node); +} +function PipelineBareFunction(node) { + this.print(node.callee, node); +} +function PipelinePrimaryTopicReference() { + this.tokenChar(35); +} + +//# sourceMappingURL=types.js.map diff --git a/node_modules/@babel/generator/lib/generators/types.js.map b/node_modules/@babel/generator/lib/generators/types.js.map new file mode 100755 index 0000000..5b0afb5 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/types.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isAssignmentPattern","isIdentifier","Identifier","node","word","name","ArgumentPlaceholder","token","RestElement","print","argument","ObjectExpression","props","properties","length","space","printList","indent","statement","sourceWithOffset","loc","ObjectMethod","printJoin","decorators","_methodHead","body","ObjectProperty","computed","key","value","left","shorthand","ArrayExpression","elems","elements","len","i","elem","RecordExpression","startToken","endToken","format","recordAndTupleSyntaxType","Error","JSON","stringify","TupleExpression","RegExpLiteral","pattern","flags","BooleanLiteral","NullLiteral","NumericLiteral","raw","getPossibleRaw","opts","jsescOption","numbers","number","jsesc","minified","StringLiteral","undefined","val","Object","assign","jsonCompatibleStrings","json","BigIntLiteral","DecimalLiteral","validTopicTokenSet","Set","TopicReference","topicToken","has","givenTopicTokenJSON","validTopics","Array","from","v","join","PipelineTopicExpression","expression","PipelineBareFunction","callee","PipelinePrimaryTopicReference"],"sources":["../../src/generators/types.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport { isAssignmentPattern, isIdentifier } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport jsesc from \"jsesc\";\n\nexport function Identifier(this: Printer, node: t.Identifier) {\n this.word(node.name);\n}\n\nexport function ArgumentPlaceholder(this: Printer) {\n this.token(\"?\");\n}\n\nexport function RestElement(this: Printer, node: t.RestElement) {\n this.token(\"...\");\n this.print(node.argument, node);\n}\n\nexport { RestElement as SpreadElement };\n\nexport function ObjectExpression(this: Printer, node: t.ObjectExpression) {\n const props = node.properties;\n\n this.token(\"{\");\n\n if (props.length) {\n this.space();\n this.printList(props, node, { indent: true, statement: true });\n this.space();\n }\n\n this.sourceWithOffset(\"end\", node.loc, 0, -1);\n\n this.token(\"}\");\n}\n\nexport { ObjectExpression as ObjectPattern };\n\nexport function ObjectMethod(this: Printer, node: t.ObjectMethod) {\n this.printJoin(node.decorators, node);\n this._methodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function ObjectProperty(this: Printer, node: t.ObjectProperty) {\n this.printJoin(node.decorators, node);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n // print `({ foo: foo = 5 } = {})` as `({ foo = 5 } = {});`\n if (\n isAssignmentPattern(node.value) &&\n isIdentifier(node.key) &&\n // @ts-expect-error todo(flow->ts) `.name` does not exist on some types in union\n node.key.name === node.value.left.name\n ) {\n this.print(node.value, node);\n return;\n }\n\n this.print(node.key, node);\n\n // shorthand!\n if (\n node.shorthand &&\n isIdentifier(node.key) &&\n isIdentifier(node.value) &&\n node.key.name === node.value.name\n ) {\n return;\n }\n }\n\n this.token(\":\");\n this.space();\n this.print(node.value, node);\n}\n\nexport function ArrayExpression(this: Printer, node: t.ArrayExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n this.token(\"[\");\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem, node);\n if (i < len - 1) this.token(\",\");\n } else {\n // If the array expression ends with a hole, that hole\n // will be ignored by the interpreter, but if it ends with\n // two (or more) holes, we need to write out two (or more)\n // commas so that the resulting code is interpreted with\n // both (all) of the holes.\n this.token(\",\");\n }\n }\n\n this.token(\"]\");\n}\n\nexport { ArrayExpression as ArrayPattern };\n\nexport function RecordExpression(this: Printer, node: t.RecordExpression) {\n const props = node.properties;\n\n let startToken;\n let endToken;\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"{|\";\n endToken = \"|}\";\n } else if (\n this.format.recordAndTupleSyntaxType !== \"hash\" &&\n this.format.recordAndTupleSyntaxType != null\n ) {\n throw new Error(\n `The \"recordAndTupleSyntaxType\" generator option must be \"bar\" or \"hash\" (${JSON.stringify(\n this.format.recordAndTupleSyntaxType,\n )} received).`,\n );\n } else {\n startToken = \"#{\";\n endToken = \"}\";\n }\n\n this.token(startToken);\n\n if (props.length) {\n this.space();\n this.printList(props, node, { indent: true, statement: true });\n this.space();\n }\n this.token(endToken);\n}\n\nexport function TupleExpression(this: Printer, node: t.TupleExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n let startToken;\n let endToken;\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"[|\";\n endToken = \"|]\";\n } else if (this.format.recordAndTupleSyntaxType === \"hash\") {\n startToken = \"#[\";\n endToken = \"]\";\n } else {\n throw new Error(\n `${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`,\n );\n }\n\n this.token(startToken);\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem, node);\n if (i < len - 1) this.token(\",\");\n }\n }\n\n this.token(endToken);\n}\n\nexport function RegExpLiteral(this: Printer, node: t.RegExpLiteral) {\n this.word(`/${node.pattern}/${node.flags}`);\n}\n\nexport function BooleanLiteral(this: Printer, node: t.BooleanLiteral) {\n this.word(node.value ? \"true\" : \"false\");\n}\n\nexport function NullLiteral(this: Printer) {\n this.word(\"null\");\n}\n\nexport function NumericLiteral(this: Printer, node: t.NumericLiteral) {\n const raw = this.getPossibleRaw(node);\n const opts = this.format.jsescOption;\n const value = node.value + \"\";\n if (opts.numbers) {\n this.number(jsesc(node.value, opts));\n } else if (raw == null) {\n this.number(value); // normalize\n } else if (this.format.minified) {\n this.number(raw.length < value.length ? raw : value);\n } else {\n this.number(raw);\n }\n}\n\nexport function StringLiteral(this: Printer, node: t.StringLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n\n const val = jsesc(\n node.value,\n process.env.BABEL_8_BREAKING\n ? this.format.jsescOption\n : Object.assign(\n this.format.jsescOption,\n this.format.jsonCompatibleStrings && { json: true },\n ),\n );\n\n return this.token(val);\n}\n\nexport function BigIntLiteral(this: Printer, node: t.BigIntLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"n\");\n}\n\nexport function DecimalLiteral(this: Printer, node: t.DecimalLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"m\");\n}\n\n// Hack pipe operator\nconst validTopicTokenSet = new Set([\"^^\", \"@@\", \"^\", \"%\", \"#\"]);\nexport function TopicReference(this: Printer) {\n const { topicToken } = this.format;\n\n if (validTopicTokenSet.has(topicToken)) {\n this.token(topicToken);\n } else {\n const givenTopicTokenJSON = JSON.stringify(topicToken);\n const validTopics = Array.from(validTopicTokenSet, v => JSON.stringify(v));\n throw new Error(\n `The \"topicToken\" generator option must be one of ` +\n `${validTopics.join(\", \")} (${givenTopicTokenJSON} received instead).`,\n );\n }\n}\n\n// Smart-mix pipe operator\nexport function PipelineTopicExpression(\n this: Printer,\n node: t.PipelineTopicExpression,\n) {\n this.print(node.expression, node);\n}\n\nexport function PipelineBareFunction(\n this: Printer,\n node: t.PipelineBareFunction,\n) {\n this.print(node.callee, node);\n}\n\nexport function PipelinePrimaryTopicReference(this: Printer) {\n this.token(\"#\");\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/typescript.js b/node_modules/@babel/generator/lib/generators/typescript.js new file mode 100755 index 0000000..5662465 --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/typescript.js @@ -0,0 +1,697 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TSAnyKeyword = TSAnyKeyword; +exports.TSArrayType = TSArrayType; +exports.TSSatisfiesExpression = exports.TSAsExpression = TSTypeExpression; +exports.TSBigIntKeyword = TSBigIntKeyword; +exports.TSBooleanKeyword = TSBooleanKeyword; +exports.TSCallSignatureDeclaration = TSCallSignatureDeclaration; +exports.TSConditionalType = TSConditionalType; +exports.TSConstructSignatureDeclaration = TSConstructSignatureDeclaration; +exports.TSConstructorType = TSConstructorType; +exports.TSDeclareFunction = TSDeclareFunction; +exports.TSDeclareMethod = TSDeclareMethod; +exports.TSEnumDeclaration = TSEnumDeclaration; +exports.TSEnumMember = TSEnumMember; +exports.TSExportAssignment = TSExportAssignment; +exports.TSExpressionWithTypeArguments = TSExpressionWithTypeArguments; +exports.TSExternalModuleReference = TSExternalModuleReference; +exports.TSFunctionType = TSFunctionType; +exports.TSImportEqualsDeclaration = TSImportEqualsDeclaration; +exports.TSImportType = TSImportType; +exports.TSIndexSignature = TSIndexSignature; +exports.TSIndexedAccessType = TSIndexedAccessType; +exports.TSInferType = TSInferType; +exports.TSInstantiationExpression = TSInstantiationExpression; +exports.TSInterfaceBody = TSInterfaceBody; +exports.TSInterfaceDeclaration = TSInterfaceDeclaration; +exports.TSIntersectionType = TSIntersectionType; +exports.TSIntrinsicKeyword = TSIntrinsicKeyword; +exports.TSLiteralType = TSLiteralType; +exports.TSMappedType = TSMappedType; +exports.TSMethodSignature = TSMethodSignature; +exports.TSModuleBlock = TSModuleBlock; +exports.TSModuleDeclaration = TSModuleDeclaration; +exports.TSNamedTupleMember = TSNamedTupleMember; +exports.TSNamespaceExportDeclaration = TSNamespaceExportDeclaration; +exports.TSNeverKeyword = TSNeverKeyword; +exports.TSNonNullExpression = TSNonNullExpression; +exports.TSNullKeyword = TSNullKeyword; +exports.TSNumberKeyword = TSNumberKeyword; +exports.TSObjectKeyword = TSObjectKeyword; +exports.TSOptionalType = TSOptionalType; +exports.TSParameterProperty = TSParameterProperty; +exports.TSParenthesizedType = TSParenthesizedType; +exports.TSPropertySignature = TSPropertySignature; +exports.TSQualifiedName = TSQualifiedName; +exports.TSRestType = TSRestType; +exports.TSStringKeyword = TSStringKeyword; +exports.TSSymbolKeyword = TSSymbolKeyword; +exports.TSThisType = TSThisType; +exports.TSTupleType = TSTupleType; +exports.TSTypeAliasDeclaration = TSTypeAliasDeclaration; +exports.TSTypeAnnotation = TSTypeAnnotation; +exports.TSTypeAssertion = TSTypeAssertion; +exports.TSTypeLiteral = TSTypeLiteral; +exports.TSTypeOperator = TSTypeOperator; +exports.TSTypeParameter = TSTypeParameter; +exports.TSTypeParameterDeclaration = exports.TSTypeParameterInstantiation = TSTypeParameterInstantiation; +exports.TSTypePredicate = TSTypePredicate; +exports.TSTypeQuery = TSTypeQuery; +exports.TSTypeReference = TSTypeReference; +exports.TSUndefinedKeyword = TSUndefinedKeyword; +exports.TSUnionType = TSUnionType; +exports.TSUnknownKeyword = TSUnknownKeyword; +exports.TSVoidKeyword = TSVoidKeyword; +exports.tsPrintClassMemberModifiers = tsPrintClassMemberModifiers; +exports.tsPrintFunctionOrConstructorType = tsPrintFunctionOrConstructorType; +exports.tsPrintPropertyOrMethodName = tsPrintPropertyOrMethodName; +exports.tsPrintSignatureDeclarationBase = tsPrintSignatureDeclarationBase; +exports.tsPrintTypeLiteralOrInterfaceBody = tsPrintTypeLiteralOrInterfaceBody; +function TSTypeAnnotation(node) { + this.tokenChar(58); + this.space(); + if (node.optional) this.tokenChar(63); + this.print(node.typeAnnotation, node); +} +function TSTypeParameterInstantiation(node, parent) { + this.tokenChar(60); + this.printList(node.params, node, {}); + if (parent.type === "ArrowFunctionExpression" && node.params.length === 1) { + this.tokenChar(44); + } + this.tokenChar(62); +} +function TSTypeParameter(node) { + if (node.in) { + this.word("in"); + this.space(); + } + if (node.out) { + this.word("out"); + this.space(); + } + this.word(node.name); + if (node.constraint) { + this.space(); + this.word("extends"); + this.space(); + this.print(node.constraint, node); + } + if (node.default) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.default, node); + } +} +function TSParameterProperty(node) { + if (node.accessibility) { + this.word(node.accessibility); + this.space(); + } + if (node.readonly) { + this.word("readonly"); + this.space(); + } + this._param(node.parameter); +} +function TSDeclareFunction(node) { + if (node.declare) { + this.word("declare"); + this.space(); + } + this._functionHead(node); + this.tokenChar(59); +} +function TSDeclareMethod(node) { + this._classMethodHead(node); + this.tokenChar(59); +} +function TSQualifiedName(node) { + this.print(node.left, node); + this.tokenChar(46); + this.print(node.right, node); +} +function TSCallSignatureDeclaration(node) { + this.tsPrintSignatureDeclarationBase(node); + this.tokenChar(59); +} +function TSConstructSignatureDeclaration(node) { + this.word("new"); + this.space(); + this.tsPrintSignatureDeclarationBase(node); + this.tokenChar(59); +} +function TSPropertySignature(node) { + const { + readonly, + initializer + } = node; + if (readonly) { + this.word("readonly"); + this.space(); + } + this.tsPrintPropertyOrMethodName(node); + this.print(node.typeAnnotation, node); + if (initializer) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(initializer, node); + } + this.tokenChar(59); +} +function tsPrintPropertyOrMethodName(node) { + if (node.computed) { + this.tokenChar(91); + } + this.print(node.key, node); + if (node.computed) { + this.tokenChar(93); + } + if (node.optional) { + this.tokenChar(63); + } +} +function TSMethodSignature(node) { + const { + kind + } = node; + if (kind === "set" || kind === "get") { + this.word(kind); + this.space(); + } + this.tsPrintPropertyOrMethodName(node); + this.tsPrintSignatureDeclarationBase(node); + this.tokenChar(59); +} +function TSIndexSignature(node) { + const { + readonly, + static: isStatic + } = node; + if (isStatic) { + this.word("static"); + this.space(); + } + if (readonly) { + this.word("readonly"); + this.space(); + } + this.tokenChar(91); + this._parameters(node.parameters, node); + this.tokenChar(93); + this.print(node.typeAnnotation, node); + this.tokenChar(59); +} +function TSAnyKeyword() { + this.word("any"); +} +function TSBigIntKeyword() { + this.word("bigint"); +} +function TSUnknownKeyword() { + this.word("unknown"); +} +function TSNumberKeyword() { + this.word("number"); +} +function TSObjectKeyword() { + this.word("object"); +} +function TSBooleanKeyword() { + this.word("boolean"); +} +function TSStringKeyword() { + this.word("string"); +} +function TSSymbolKeyword() { + this.word("symbol"); +} +function TSVoidKeyword() { + this.word("void"); +} +function TSUndefinedKeyword() { + this.word("undefined"); +} +function TSNullKeyword() { + this.word("null"); +} +function TSNeverKeyword() { + this.word("never"); +} +function TSIntrinsicKeyword() { + this.word("intrinsic"); +} +function TSThisType() { + this.word("this"); +} +function TSFunctionType(node) { + this.tsPrintFunctionOrConstructorType(node); +} +function TSConstructorType(node) { + if (node.abstract) { + this.word("abstract"); + this.space(); + } + this.word("new"); + this.space(); + this.tsPrintFunctionOrConstructorType(node); +} +function tsPrintFunctionOrConstructorType(node) { + const { + typeParameters + } = node; + const parameters = + node.parameters; + this.print(typeParameters, node); + this.tokenChar(40); + this._parameters(parameters, node); + this.tokenChar(41); + this.space(); + this.token("=>"); + this.space(); + const returnType = + node.typeAnnotation; + this.print(returnType.typeAnnotation, node); +} +function TSTypeReference(node) { + this.print(node.typeName, node, true); + this.print(node.typeParameters, node, true); +} +function TSTypePredicate(node) { + if (node.asserts) { + this.word("asserts"); + this.space(); + } + this.print(node.parameterName); + if (node.typeAnnotation) { + this.space(); + this.word("is"); + this.space(); + this.print(node.typeAnnotation.typeAnnotation); + } +} +function TSTypeQuery(node) { + this.word("typeof"); + this.space(); + this.print(node.exprName); + if (node.typeParameters) { + this.print(node.typeParameters, node); + } +} +function TSTypeLiteral(node) { + this.tsPrintTypeLiteralOrInterfaceBody(node.members, node); +} +function tsPrintTypeLiteralOrInterfaceBody(members, node) { + tsPrintBraced(this, members, node); +} +function tsPrintBraced(printer, members, node) { + printer.token("{"); + if (members.length) { + printer.indent(); + printer.newline(); + for (const member of members) { + printer.print(member, node); + printer.newline(); + } + printer.dedent(); + } + printer.sourceWithOffset("end", node.loc, 0, -1); + printer.rightBrace(); +} +function TSArrayType(node) { + this.print(node.elementType, node, true); + this.token("[]"); +} +function TSTupleType(node) { + this.tokenChar(91); + this.printList(node.elementTypes, node); + this.tokenChar(93); +} +function TSOptionalType(node) { + this.print(node.typeAnnotation, node); + this.tokenChar(63); +} +function TSRestType(node) { + this.token("..."); + this.print(node.typeAnnotation, node); +} +function TSNamedTupleMember(node) { + this.print(node.label, node); + if (node.optional) this.tokenChar(63); + this.tokenChar(58); + this.space(); + this.print(node.elementType, node); +} +function TSUnionType(node) { + tsPrintUnionOrIntersectionType(this, node, "|"); +} +function TSIntersectionType(node) { + tsPrintUnionOrIntersectionType(this, node, "&"); +} +function tsPrintUnionOrIntersectionType(printer, node, sep) { + printer.printJoin(node.types, node, { + separator() { + this.space(); + this.token(sep); + this.space(); + } + }); +} +function TSConditionalType(node) { + this.print(node.checkType); + this.space(); + this.word("extends"); + this.space(); + this.print(node.extendsType); + this.space(); + this.tokenChar(63); + this.space(); + this.print(node.trueType); + this.space(); + this.tokenChar(58); + this.space(); + this.print(node.falseType); +} +function TSInferType(node) { + this.token("infer"); + this.space(); + this.print(node.typeParameter); +} +function TSParenthesizedType(node) { + this.tokenChar(40); + this.print(node.typeAnnotation, node); + this.tokenChar(41); +} +function TSTypeOperator(node) { + this.word(node.operator); + this.space(); + this.print(node.typeAnnotation, node); +} +function TSIndexedAccessType(node) { + this.print(node.objectType, node, true); + this.tokenChar(91); + this.print(node.indexType, node); + this.tokenChar(93); +} +function TSMappedType(node) { + const { + nameType, + optional, + readonly, + typeParameter + } = node; + this.tokenChar(123); + this.space(); + if (readonly) { + tokenIfPlusMinus(this, readonly); + this.word("readonly"); + this.space(); + } + this.tokenChar(91); + this.word(typeParameter.name); + this.space(); + this.word("in"); + this.space(); + this.print(typeParameter.constraint, typeParameter); + if (nameType) { + this.space(); + this.word("as"); + this.space(); + this.print(nameType, node); + } + this.tokenChar(93); + if (optional) { + tokenIfPlusMinus(this, optional); + this.tokenChar(63); + } + this.tokenChar(58); + this.space(); + this.print(node.typeAnnotation, node); + this.space(); + this.tokenChar(125); +} +function tokenIfPlusMinus(self, tok) { + if (tok !== true) { + self.token(tok); + } +} +function TSLiteralType(node) { + this.print(node.literal, node); +} +function TSExpressionWithTypeArguments(node) { + this.print(node.expression, node); + this.print(node.typeParameters, node); +} +function TSInterfaceDeclaration(node) { + const { + declare, + id, + typeParameters, + extends: extendz, + body + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + this.word("interface"); + this.space(); + this.print(id, node); + this.print(typeParameters, node); + if (extendz != null && extendz.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(extendz, node); + } + this.space(); + this.print(body, node); +} +function TSInterfaceBody(node) { + this.tsPrintTypeLiteralOrInterfaceBody(node.body, node); +} +function TSTypeAliasDeclaration(node) { + const { + declare, + id, + typeParameters, + typeAnnotation + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + this.word("type"); + this.space(); + this.print(id, node); + this.print(typeParameters, node); + this.space(); + this.tokenChar(61); + this.space(); + this.print(typeAnnotation, node); + this.tokenChar(59); +} +function TSTypeExpression(node) { + var _expression$trailingC; + const { + type, + expression, + typeAnnotation + } = node; + const forceParens = !!((_expression$trailingC = expression.trailingComments) != null && _expression$trailingC.length); + this.print(expression, node, true, undefined, forceParens); + this.space(); + this.word(type === "TSAsExpression" ? "as" : "satisfies"); + this.space(); + this.print(typeAnnotation, node); +} +function TSTypeAssertion(node) { + const { + typeAnnotation, + expression + } = node; + this.tokenChar(60); + this.print(typeAnnotation, node); + this.tokenChar(62); + this.space(); + this.print(expression, node); +} +function TSInstantiationExpression(node) { + this.print(node.expression, node); + this.print(node.typeParameters, node); +} +function TSEnumDeclaration(node) { + const { + declare, + const: isConst, + id, + members + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + if (isConst) { + this.word("const"); + this.space(); + } + this.word("enum"); + this.space(); + this.print(id, node); + this.space(); + tsPrintBraced(this, members, node); +} +function TSEnumMember(node) { + const { + id, + initializer + } = node; + this.print(id, node); + if (initializer) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(initializer, node); + } + this.tokenChar(44); +} +function TSModuleDeclaration(node) { + const { + declare, + id + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + if (!node.global) { + this.word(id.type === "Identifier" ? "namespace" : "module"); + this.space(); + } + this.print(id, node); + if (!node.body) { + this.tokenChar(59); + return; + } + let body = node.body; + while (body.type === "TSModuleDeclaration") { + this.tokenChar(46); + this.print(body.id, body); + body = body.body; + } + this.space(); + this.print(body, node); +} +function TSModuleBlock(node) { + tsPrintBraced(this, node.body, node); +} +function TSImportType(node) { + const { + argument, + qualifier, + typeParameters + } = node; + this.word("import"); + this.tokenChar(40); + this.print(argument, node); + this.tokenChar(41); + if (qualifier) { + this.tokenChar(46); + this.print(qualifier, node); + } + if (typeParameters) { + this.print(typeParameters, node); + } +} +function TSImportEqualsDeclaration(node) { + const { + isExport, + id, + moduleReference + } = node; + if (isExport) { + this.word("export"); + this.space(); + } + this.word("import"); + this.space(); + this.print(id, node); + this.space(); + this.tokenChar(61); + this.space(); + this.print(moduleReference, node); + this.tokenChar(59); +} +function TSExternalModuleReference(node) { + this.token("require("); + this.print(node.expression, node); + this.tokenChar(41); +} +function TSNonNullExpression(node) { + this.print(node.expression, node); + this.tokenChar(33); +} +function TSExportAssignment(node) { + this.word("export"); + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.expression, node); + this.tokenChar(59); +} +function TSNamespaceExportDeclaration(node) { + this.word("export"); + this.space(); + this.word("as"); + this.space(); + this.word("namespace"); + this.space(); + this.print(node.id, node); +} +function tsPrintSignatureDeclarationBase(node) { + const { + typeParameters + } = node; + const parameters = node.parameters; + this.print(typeParameters, node); + this.tokenChar(40); + this._parameters(parameters, node); + this.tokenChar(41); + const returnType = node.typeAnnotation; + this.print(returnType, node); +} +function tsPrintClassMemberModifiers(node) { + const isField = node.type === "ClassAccessorProperty" || node.type === "ClassProperty"; + if (isField && node.declare) { + this.word("declare"); + this.space(); + } + if (node.accessibility) { + this.word(node.accessibility); + this.space(); + } + if (node.static) { + this.word("static"); + this.space(); + } + if (node.override) { + this.word("override"); + this.space(); + } + if (node.abstract) { + this.word("abstract"); + this.space(); + } + if (isField && node.readonly) { + this.word("readonly"); + this.space(); + } +} + +//# sourceMappingURL=typescript.js.map diff --git a/node_modules/@babel/generator/lib/generators/typescript.js.map b/node_modules/@babel/generator/lib/generators/typescript.js.map new file mode 100755 index 0000000..fa65acc --- /dev/null +++ b/node_modules/@babel/generator/lib/generators/typescript.js.map @@ -0,0 +1 @@ +{"version":3,"names":["TSTypeAnnotation","node","token","space","optional","print","typeAnnotation","TSTypeParameterInstantiation","parent","printList","params","type","length","TSTypeParameter","in","word","out","name","constraint","default","TSParameterProperty","accessibility","readonly","_param","parameter","TSDeclareFunction","declare","_functionHead","TSDeclareMethod","_classMethodHead","TSQualifiedName","left","right","TSCallSignatureDeclaration","tsPrintSignatureDeclarationBase","TSConstructSignatureDeclaration","TSPropertySignature","initializer","tsPrintPropertyOrMethodName","computed","key","TSMethodSignature","kind","TSIndexSignature","static","isStatic","_parameters","parameters","TSAnyKeyword","TSBigIntKeyword","TSUnknownKeyword","TSNumberKeyword","TSObjectKeyword","TSBooleanKeyword","TSStringKeyword","TSSymbolKeyword","TSVoidKeyword","TSUndefinedKeyword","TSNullKeyword","TSNeverKeyword","TSIntrinsicKeyword","TSThisType","TSFunctionType","tsPrintFunctionOrConstructorType","TSConstructorType","abstract","typeParameters","returnType","TSTypeReference","typeName","TSTypePredicate","asserts","parameterName","TSTypeQuery","exprName","TSTypeLiteral","tsPrintTypeLiteralOrInterfaceBody","members","tsPrintBraced","printer","indent","newline","member","dedent","sourceWithOffset","loc","rightBrace","TSArrayType","elementType","TSTupleType","elementTypes","TSOptionalType","TSRestType","TSNamedTupleMember","label","TSUnionType","tsPrintUnionOrIntersectionType","TSIntersectionType","sep","printJoin","types","separator","TSConditionalType","checkType","extendsType","trueType","falseType","TSInferType","typeParameter","TSParenthesizedType","TSTypeOperator","operator","TSIndexedAccessType","objectType","indexType","TSMappedType","nameType","tokenIfPlusMinus","self","tok","TSLiteralType","literal","TSExpressionWithTypeArguments","expression","TSInterfaceDeclaration","id","extends","extendz","body","TSInterfaceBody","TSTypeAliasDeclaration","TSTypeExpression","forceParens","trailingComments","undefined","TSTypeAssertion","TSInstantiationExpression","TSEnumDeclaration","const","isConst","TSEnumMember","TSModuleDeclaration","global","TSModuleBlock","TSImportType","argument","qualifier","TSImportEqualsDeclaration","isExport","moduleReference","TSExternalModuleReference","TSNonNullExpression","TSExportAssignment","TSNamespaceExportDeclaration","tsPrintClassMemberModifiers","isField","override"],"sources":["../../src/generators/typescript.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport type * as t from \"@babel/types\";\n\nexport function TSTypeAnnotation(this: Printer, node: t.TSTypeAnnotation) {\n this.token(\":\");\n this.space();\n // @ts-expect-error todo(flow->ts) can this be removed? `.optional` looks to be not existing property\n if (node.optional) this.token(\"?\");\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSTypeParameterInstantiation(\n this: Printer,\n node: t.TSTypeParameterInstantiation,\n parent: t.Node,\n): void {\n this.token(\"<\");\n this.printList(node.params, node, {});\n if (parent.type === \"ArrowFunctionExpression\" && node.params.length === 1) {\n this.token(\",\");\n }\n this.token(\">\");\n}\n\nexport { TSTypeParameterInstantiation as TSTypeParameterDeclaration };\n\nexport function TSTypeParameter(this: Printer, node: t.TSTypeParameter) {\n if (node.in) {\n this.word(\"in\");\n this.space();\n }\n\n if (node.out) {\n this.word(\"out\");\n this.space();\n }\n\n this.word(\n !process.env.BABEL_8_BREAKING\n ? (node.name as unknown as string)\n : (node.name as unknown as t.Identifier).name,\n );\n\n if (node.constraint) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.constraint, node);\n }\n\n if (node.default) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.default, node);\n }\n}\n\nexport function TSParameterProperty(\n this: Printer,\n node: t.TSParameterProperty,\n) {\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n\n if (node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n\n this._param(node.parameter);\n}\n\nexport function TSDeclareFunction(this: Printer, node: t.TSDeclareFunction) {\n if (node.declare) {\n this.word(\"declare\");\n this.space();\n }\n this._functionHead(node);\n this.token(\";\");\n}\n\nexport function TSDeclareMethod(this: Printer, node: t.TSDeclareMethod) {\n this._classMethodHead(node);\n this.token(\";\");\n}\n\nexport function TSQualifiedName(this: Printer, node: t.TSQualifiedName) {\n this.print(node.left, node);\n this.token(\".\");\n this.print(node.right, node);\n}\n\nexport function TSCallSignatureDeclaration(\n this: Printer,\n node: t.TSCallSignatureDeclaration,\n) {\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSConstructSignatureDeclaration(\n this: Printer,\n node: t.TSConstructSignatureDeclaration,\n) {\n this.word(\"new\");\n this.space();\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSPropertySignature(\n this: Printer,\n node: t.TSPropertySignature,\n) {\n const { readonly, initializer } = node;\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.print(node.typeAnnotation, node);\n if (initializer) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(initializer, node);\n }\n this.token(\";\");\n}\n\nexport function tsPrintPropertyOrMethodName(\n this: Printer,\n node: t.TSPropertySignature | t.TSMethodSignature,\n) {\n if (node.computed) {\n this.token(\"[\");\n }\n this.print(node.key, node);\n if (node.computed) {\n this.token(\"]\");\n }\n if (node.optional) {\n this.token(\"?\");\n }\n}\n\nexport function TSMethodSignature(this: Printer, node: t.TSMethodSignature) {\n const { kind } = node;\n if (kind === \"set\" || kind === \"get\") {\n this.word(kind);\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSIndexSignature(this: Printer, node: t.TSIndexSignature) {\n const { readonly, static: isStatic } = node;\n if (isStatic) {\n this.word(\"static\");\n this.space();\n }\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.token(\"[\");\n this._parameters(node.parameters, node);\n this.token(\"]\");\n this.print(node.typeAnnotation, node);\n this.token(\";\");\n}\n\nexport function TSAnyKeyword(this: Printer) {\n this.word(\"any\");\n}\nexport function TSBigIntKeyword(this: Printer) {\n this.word(\"bigint\");\n}\nexport function TSUnknownKeyword(this: Printer) {\n this.word(\"unknown\");\n}\nexport function TSNumberKeyword(this: Printer) {\n this.word(\"number\");\n}\nexport function TSObjectKeyword(this: Printer) {\n this.word(\"object\");\n}\nexport function TSBooleanKeyword(this: Printer) {\n this.word(\"boolean\");\n}\nexport function TSStringKeyword(this: Printer) {\n this.word(\"string\");\n}\nexport function TSSymbolKeyword(this: Printer) {\n this.word(\"symbol\");\n}\nexport function TSVoidKeyword(this: Printer) {\n this.word(\"void\");\n}\nexport function TSUndefinedKeyword(this: Printer) {\n this.word(\"undefined\");\n}\nexport function TSNullKeyword(this: Printer) {\n this.word(\"null\");\n}\nexport function TSNeverKeyword(this: Printer) {\n this.word(\"never\");\n}\nexport function TSIntrinsicKeyword(this: Printer) {\n this.word(\"intrinsic\");\n}\n\nexport function TSThisType(this: Printer) {\n this.word(\"this\");\n}\n\nexport function TSFunctionType(this: Printer, node: t.TSFunctionType) {\n this.tsPrintFunctionOrConstructorType(node);\n}\n\nexport function TSConstructorType(this: Printer, node: t.TSConstructorType) {\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n this.word(\"new\");\n this.space();\n this.tsPrintFunctionOrConstructorType(node);\n}\n\nexport function tsPrintFunctionOrConstructorType(\n this: Printer,\n node: t.TSFunctionType | t.TSConstructorType,\n) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.params\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.parameters;\n this.print(typeParameters, node);\n this.token(\"(\");\n this._parameters(parameters, node);\n this.token(\")\");\n this.space();\n this.token(\"=>\");\n this.space();\n const returnType = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.returnType\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.typeAnnotation;\n this.print(returnType.typeAnnotation, node);\n}\n\nexport function TSTypeReference(this: Printer, node: t.TSTypeReference) {\n this.print(node.typeName, node, true);\n this.print(node.typeParameters, node, true);\n}\n\nexport function TSTypePredicate(this: Printer, node: t.TSTypePredicate) {\n if (node.asserts) {\n this.word(\"asserts\");\n this.space();\n }\n this.print(node.parameterName);\n if (node.typeAnnotation) {\n this.space();\n this.word(\"is\");\n this.space();\n this.print(node.typeAnnotation.typeAnnotation);\n }\n}\n\nexport function TSTypeQuery(this: Printer, node: t.TSTypeQuery) {\n this.word(\"typeof\");\n this.space();\n this.print(node.exprName);\n\n if (node.typeParameters) {\n this.print(node.typeParameters, node);\n }\n}\n\nexport function TSTypeLiteral(this: Printer, node: t.TSTypeLiteral) {\n this.tsPrintTypeLiteralOrInterfaceBody(node.members, node);\n}\n\nexport function tsPrintTypeLiteralOrInterfaceBody(\n this: Printer,\n members: t.TSTypeElement[],\n node: t.TSType | t.TSInterfaceBody,\n) {\n tsPrintBraced(this, members, node);\n}\n\nfunction tsPrintBraced(printer: Printer, members: t.Node[], node: t.Node) {\n printer.token(\"{\");\n if (members.length) {\n printer.indent();\n printer.newline();\n for (const member of members) {\n printer.print(member, node);\n //this.token(sep);\n printer.newline();\n }\n printer.dedent();\n }\n\n printer.sourceWithOffset(\"end\", node.loc, 0, -1);\n\n printer.rightBrace();\n}\n\nexport function TSArrayType(this: Printer, node: t.TSArrayType) {\n this.print(node.elementType, node, true);\n\n this.token(\"[]\");\n}\n\nexport function TSTupleType(this: Printer, node: t.TSTupleType) {\n this.token(\"[\");\n this.printList(node.elementTypes, node);\n this.token(\"]\");\n}\n\nexport function TSOptionalType(this: Printer, node: t.TSOptionalType) {\n this.print(node.typeAnnotation, node);\n this.token(\"?\");\n}\n\nexport function TSRestType(this: Printer, node: t.TSRestType) {\n this.token(\"...\");\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSNamedTupleMember(this: Printer, node: t.TSNamedTupleMember) {\n this.print(node.label, node);\n if (node.optional) this.token(\"?\");\n this.token(\":\");\n this.space();\n this.print(node.elementType, node);\n}\n\nexport function TSUnionType(this: Printer, node: t.TSUnionType) {\n tsPrintUnionOrIntersectionType(this, node, \"|\");\n}\n\nexport function TSIntersectionType(this: Printer, node: t.TSIntersectionType) {\n tsPrintUnionOrIntersectionType(this, node, \"&\");\n}\n\nfunction tsPrintUnionOrIntersectionType(\n printer: Printer,\n node: t.TSUnionType | t.TSIntersectionType,\n sep: \"|\" | \"&\",\n) {\n printer.printJoin(node.types, node, {\n separator() {\n this.space();\n this.token(sep);\n this.space();\n },\n });\n}\n\nexport function TSConditionalType(this: Printer, node: t.TSConditionalType) {\n this.print(node.checkType);\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.extendsType);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.trueType);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.falseType);\n}\n\nexport function TSInferType(this: Printer, node: t.TSInferType) {\n this.token(\"infer\");\n this.space();\n this.print(node.typeParameter);\n}\n\nexport function TSParenthesizedType(\n this: Printer,\n node: t.TSParenthesizedType,\n) {\n this.token(\"(\");\n this.print(node.typeAnnotation, node);\n this.token(\")\");\n}\n\nexport function TSTypeOperator(this: Printer, node: t.TSTypeOperator) {\n this.word(node.operator);\n this.space();\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSIndexedAccessType(\n this: Printer,\n node: t.TSIndexedAccessType,\n) {\n this.print(node.objectType, node, true);\n this.token(\"[\");\n this.print(node.indexType, node);\n this.token(\"]\");\n}\n\nexport function TSMappedType(this: Printer, node: t.TSMappedType) {\n const { nameType, optional, readonly, typeParameter } = node;\n this.token(\"{\");\n this.space();\n if (readonly) {\n tokenIfPlusMinus(this, readonly);\n this.word(\"readonly\");\n this.space();\n }\n\n this.token(\"[\");\n this.word(\n !process.env.BABEL_8_BREAKING\n ? (typeParameter.name as unknown as string)\n : (typeParameter.name as unknown as t.Identifier).name,\n );\n this.space();\n this.word(\"in\");\n this.space();\n this.print(typeParameter.constraint, typeParameter);\n\n if (nameType) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(nameType, node);\n }\n\n this.token(\"]\");\n\n if (optional) {\n tokenIfPlusMinus(this, optional);\n this.token(\"?\");\n }\n this.token(\":\");\n this.space();\n this.print(node.typeAnnotation, node);\n this.space();\n this.token(\"}\");\n}\n\nfunction tokenIfPlusMinus(self: Printer, tok: true | \"+\" | \"-\") {\n if (tok !== true) {\n self.token(tok);\n }\n}\n\nexport function TSLiteralType(this: Printer, node: t.TSLiteralType) {\n this.print(node.literal, node);\n}\n\nexport function TSExpressionWithTypeArguments(\n this: Printer,\n node: t.TSExpressionWithTypeArguments,\n) {\n this.print(node.expression, node);\n this.print(node.typeParameters, node);\n}\n\nexport function TSInterfaceDeclaration(\n this: Printer,\n node: t.TSInterfaceDeclaration,\n) {\n const { declare, id, typeParameters, extends: extendz, body } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"interface\");\n this.space();\n this.print(id, node);\n this.print(typeParameters, node);\n if (extendz?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(extendz, node);\n }\n this.space();\n this.print(body, node);\n}\n\nexport function TSInterfaceBody(this: Printer, node: t.TSInterfaceBody) {\n this.tsPrintTypeLiteralOrInterfaceBody(node.body, node);\n}\n\nexport function TSTypeAliasDeclaration(\n this: Printer,\n node: t.TSTypeAliasDeclaration,\n) {\n const { declare, id, typeParameters, typeAnnotation } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"type\");\n this.space();\n this.print(id, node);\n this.print(typeParameters, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(typeAnnotation, node);\n this.token(\";\");\n}\n\nfunction TSTypeExpression(\n this: Printer,\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n) {\n const { type, expression, typeAnnotation } = node;\n const forceParens = !!expression.trailingComments?.length;\n this.print(expression, node, true, undefined, forceParens);\n this.space();\n this.word(type === \"TSAsExpression\" ? \"as\" : \"satisfies\");\n this.space();\n this.print(typeAnnotation, node);\n}\n\nexport {\n TSTypeExpression as TSAsExpression,\n TSTypeExpression as TSSatisfiesExpression,\n};\n\nexport function TSTypeAssertion(this: Printer, node: t.TSTypeAssertion) {\n const { typeAnnotation, expression } = node;\n this.token(\"<\");\n this.print(typeAnnotation, node);\n this.token(\">\");\n this.space();\n this.print(expression, node);\n}\n\nexport function TSInstantiationExpression(\n this: Printer,\n node: t.TSInstantiationExpression,\n) {\n this.print(node.expression, node);\n this.print(node.typeParameters, node);\n}\n\nexport function TSEnumDeclaration(this: Printer, node: t.TSEnumDeclaration) {\n const { declare, const: isConst, id, members } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n if (isConst) {\n this.word(\"const\");\n this.space();\n }\n this.word(\"enum\");\n this.space();\n this.print(id, node);\n this.space();\n tsPrintBraced(this, members, node);\n}\n\nexport function TSEnumMember(this: Printer, node: t.TSEnumMember) {\n const { id, initializer } = node;\n this.print(id, node);\n if (initializer) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(initializer, node);\n }\n this.token(\",\");\n}\n\nexport function TSModuleDeclaration(\n this: Printer,\n node: t.TSModuleDeclaration,\n) {\n const { declare, id } = node;\n\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n\n if (!node.global) {\n this.word(id.type === \"Identifier\" ? \"namespace\" : \"module\");\n this.space();\n }\n this.print(id, node);\n\n if (!node.body) {\n this.token(\";\");\n return;\n }\n\n let body = node.body;\n while (body.type === \"TSModuleDeclaration\") {\n this.token(\".\");\n this.print(body.id, body);\n body = body.body;\n }\n\n this.space();\n this.print(body, node);\n}\n\nexport function TSModuleBlock(this: Printer, node: t.TSModuleBlock) {\n tsPrintBraced(this, node.body, node);\n}\n\nexport function TSImportType(this: Printer, node: t.TSImportType) {\n const { argument, qualifier, typeParameters } = node;\n this.word(\"import\");\n this.token(\"(\");\n this.print(argument, node);\n this.token(\")\");\n if (qualifier) {\n this.token(\".\");\n this.print(qualifier, node);\n }\n if (typeParameters) {\n this.print(typeParameters, node);\n }\n}\n\nexport function TSImportEqualsDeclaration(\n this: Printer,\n node: t.TSImportEqualsDeclaration,\n) {\n const { isExport, id, moduleReference } = node;\n if (isExport) {\n this.word(\"export\");\n this.space();\n }\n this.word(\"import\");\n this.space();\n this.print(id, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(moduleReference, node);\n this.token(\";\");\n}\n\nexport function TSExternalModuleReference(\n this: Printer,\n node: t.TSExternalModuleReference,\n) {\n this.token(\"require(\");\n this.print(node.expression, node);\n this.token(\")\");\n}\n\nexport function TSNonNullExpression(\n this: Printer,\n node: t.TSNonNullExpression,\n) {\n this.print(node.expression, node);\n this.token(\"!\");\n}\n\nexport function TSExportAssignment(this: Printer, node: t.TSExportAssignment) {\n this.word(\"export\");\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.expression, node);\n this.token(\";\");\n}\n\nexport function TSNamespaceExportDeclaration(\n this: Printer,\n node: t.TSNamespaceExportDeclaration,\n) {\n this.word(\"export\");\n this.space();\n this.word(\"as\");\n this.space();\n this.word(\"namespace\");\n this.space();\n this.print(node.id, node);\n}\n\nexport function tsPrintSignatureDeclarationBase(this: Printer, node: any) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? node.params\n : node.parameters;\n this.print(typeParameters, node);\n this.token(\"(\");\n this._parameters(parameters, node);\n this.token(\")\");\n const returnType = process.env.BABEL_8_BREAKING\n ? node.returnType\n : node.typeAnnotation;\n this.print(returnType, node);\n}\n\nexport function tsPrintClassMemberModifiers(\n this: Printer,\n node:\n | t.ClassProperty\n | t.ClassAccessorProperty\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.TSDeclareMethod,\n) {\n const isField =\n node.type === \"ClassAccessorProperty\" || node.type === \"ClassProperty\";\n if (isField && node.declare) {\n this.word(\"declare\");\n this.space();\n }\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n if (node.override) {\n this.word(\"override\");\n this.space();\n }\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n if (isField && node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/index.js b/node_modules/@babel/generator/lib/index.js new file mode 100755 index 0000000..4fee1ef --- /dev/null +++ b/node_modules/@babel/generator/lib/index.js @@ -0,0 +1,98 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CodeGenerator = void 0; +exports.default = generate; +var _sourceMap = require("./source-map"); +var _printer = require("./printer"); + +class Generator extends _printer.default { + constructor(ast, opts = {}, code) { + const format = normalizeOptions(code, opts); + const map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; + super(format, map); + this.ast = void 0; + this.ast = ast; + } + + generate() { + return super.generate(this.ast); + } +} + +function normalizeOptions(code, opts) { + const format = { + auxiliaryCommentBefore: opts.auxiliaryCommentBefore, + auxiliaryCommentAfter: opts.auxiliaryCommentAfter, + shouldPrintComment: opts.shouldPrintComment, + retainLines: opts.retainLines, + retainFunctionParens: opts.retainFunctionParens, + comments: opts.comments == null || opts.comments, + compact: opts.compact, + minified: opts.minified, + concise: opts.concise, + indent: { + adjustMultilineComment: true, + style: " " + }, + jsescOption: Object.assign({ + quotes: "double", + wrap: true, + minimal: false + }, opts.jsescOption), + recordAndTupleSyntaxType: opts.recordAndTupleSyntaxType, + topicToken: opts.topicToken + }; + { + format.decoratorsBeforeExport = !!opts.decoratorsBeforeExport; + format.jsonCompatibleStrings = opts.jsonCompatibleStrings; + } + if (format.minified) { + format.compact = true; + format.shouldPrintComment = format.shouldPrintComment || (() => format.comments); + } else { + format.shouldPrintComment = format.shouldPrintComment || (value => format.comments || value.includes("@license") || value.includes("@preserve")); + } + if (format.compact === "auto") { + format.compact = code.length > 500000; + + if (format.compact) { + console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`); + } + } + if (format.compact) { + format.indent.adjustMultilineComment = false; + } + const { + auxiliaryCommentBefore, + auxiliaryCommentAfter, + shouldPrintComment + } = format; + if (auxiliaryCommentBefore && !shouldPrintComment(auxiliaryCommentBefore)) { + format.auxiliaryCommentBefore = undefined; + } + if (auxiliaryCommentAfter && !shouldPrintComment(auxiliaryCommentAfter)) { + format.auxiliaryCommentAfter = undefined; + } + return format; +} + +class CodeGenerator { + constructor(ast, opts, code) { + this._generator = void 0; + this._generator = new Generator(ast, opts, code); + } + generate() { + return this._generator.generate(); + } +} + +exports.CodeGenerator = CodeGenerator; +function generate(ast, opts, code) { + const gen = new Generator(ast, opts, code); + return gen.generate(); +} + +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/generator/lib/index.js.map b/node_modules/@babel/generator/lib/index.js.map new file mode 100755 index 0000000..61b9032 --- /dev/null +++ b/node_modules/@babel/generator/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["Generator","Printer","constructor","ast","opts","code","format","normalizeOptions","map","sourceMaps","SourceMap","generate","auxiliaryCommentBefore","auxiliaryCommentAfter","shouldPrintComment","retainLines","retainFunctionParens","comments","compact","minified","concise","indent","adjustMultilineComment","style","jsescOption","quotes","wrap","minimal","recordAndTupleSyntaxType","topicToken","decoratorsBeforeExport","jsonCompatibleStrings","value","includes","length","console","error","filename","undefined","CodeGenerator","_generator","gen"],"sources":["../src/index.ts"],"sourcesContent":["import SourceMap from \"./source-map\";\nimport Printer from \"./printer\";\nimport type * as t from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\nimport type { Format } from \"./printer\";\nimport type {\n RecordAndTuplePluginOptions,\n PipelineOperatorPluginOptions,\n} from \"@babel/parser\";\nimport type { DecodedSourceMap, Mapping } from \"@jridgewell/gen-mapping\";\n\n/**\n * Babel's code generator, turns an ast into code, maintaining sourcemaps,\n * user preferences, and valid output.\n */\n\nclass Generator extends Printer {\n constructor(\n ast: t.Node,\n opts: GeneratorOptions = {},\n code: string | { [filename: string]: string },\n ) {\n const format = normalizeOptions(code, opts);\n const map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n super(format, map);\n\n this.ast = ast;\n }\n\n ast: t.Node;\n\n /**\n * Generate code and sourcemap from ast.\n *\n * Appends comments that weren't attached to any node to the end of the generated output.\n */\n\n generate() {\n return super.generate(this.ast);\n }\n}\n\n/**\n * Normalize generator options, setting defaults.\n *\n * - Detects code indentation.\n * - If `opts.compact = \"auto\"` and the code is over 500KB, `compact` will be set to `true`.\n */\n\nfunction normalizeOptions(\n code: string | { [filename: string]: string },\n opts: GeneratorOptions,\n): Format {\n const format: Format = {\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n shouldPrintComment: opts.shouldPrintComment,\n retainLines: opts.retainLines,\n retainFunctionParens: opts.retainFunctionParens,\n comments: opts.comments == null || opts.comments,\n compact: opts.compact,\n minified: opts.minified,\n concise: opts.concise,\n indent: {\n adjustMultilineComment: true,\n style: \" \",\n },\n jsescOption: {\n quotes: \"double\",\n wrap: true,\n minimal: process.env.BABEL_8_BREAKING ? true : false,\n ...opts.jsescOption,\n },\n recordAndTupleSyntaxType: opts.recordAndTupleSyntaxType,\n topicToken: opts.topicToken,\n };\n\n if (!process.env.BABEL_8_BREAKING) {\n format.decoratorsBeforeExport = !!opts.decoratorsBeforeExport;\n format.jsonCompatibleStrings = opts.jsonCompatibleStrings;\n }\n\n if (format.minified) {\n format.compact = true;\n\n format.shouldPrintComment =\n format.shouldPrintComment || (() => format.comments);\n } else {\n format.shouldPrintComment =\n format.shouldPrintComment ||\n (value =>\n format.comments ||\n value.includes(\"@license\") ||\n value.includes(\"@preserve\"));\n }\n\n if (format.compact === \"auto\") {\n format.compact = code.length > 500_000; // 500KB\n\n if (format.compact) {\n console.error(\n \"[BABEL] Note: The code generator has deoptimised the styling of \" +\n `${opts.filename} as it exceeds the max of ${\"500KB\"}.`,\n );\n }\n }\n\n if (format.compact) {\n format.indent.adjustMultilineComment = false;\n }\n\n const { auxiliaryCommentBefore, auxiliaryCommentAfter, shouldPrintComment } =\n format;\n\n if (auxiliaryCommentBefore && !shouldPrintComment(auxiliaryCommentBefore)) {\n format.auxiliaryCommentBefore = undefined;\n }\n if (auxiliaryCommentAfter && !shouldPrintComment(auxiliaryCommentAfter)) {\n format.auxiliaryCommentAfter = undefined;\n }\n\n return format;\n}\n\nexport interface GeneratorOptions {\n /**\n * Optional string to add as a block comment at the start of the output file.\n */\n auxiliaryCommentBefore?: string;\n\n /**\n * Optional string to add as a block comment at the end of the output file.\n */\n auxiliaryCommentAfter?: string;\n\n /**\n * Function that takes a comment (as a string) and returns true if the comment should be included in the output.\n * By default, comments are included if `opts.comments` is `true` or if `opts.minifed` is `false` and the comment\n * contains `@preserve` or `@license`.\n */\n shouldPrintComment?(comment: string): boolean;\n\n /**\n * Attempt to use the same line numbers in the output code as in the source code (helps preserve stack traces).\n * Defaults to `false`.\n */\n retainLines?: boolean;\n\n /**\n * Retain parens around function expressions (could be used to change engine parsing behavior)\n * Defaults to `false`.\n */\n retainFunctionParens?: boolean;\n\n /**\n * Should comments be included in output? Defaults to `true`.\n */\n comments?: boolean;\n\n /**\n * Set to true to avoid adding whitespace for formatting. Defaults to the value of `opts.minified`.\n */\n compact?: boolean | \"auto\";\n\n /**\n * Should the output be minified. Defaults to `false`.\n */\n minified?: boolean;\n\n /**\n * Set to true to reduce whitespace (but not as much as opts.compact). Defaults to `false`.\n */\n concise?: boolean;\n\n /**\n * Used in warning messages\n */\n filename?: string;\n\n /**\n * Enable generating source maps. Defaults to `false`.\n */\n sourceMaps?: boolean;\n\n /**\n * A root for all relative URLs in the source map.\n */\n sourceRoot?: string;\n\n /**\n * The filename for the source code (i.e. the code in the `code` argument).\n * This will only be used if `code` is a string.\n */\n sourceFileName?: string;\n\n /**\n * Set to true to run jsesc with \"json\": true to print \"\\u00A9\" vs. \"©\";\n * @deprecated use `jsescOptions: { json: true }` instead\n */\n jsonCompatibleStrings?: boolean;\n\n /**\n * Set to true to enable support for experimental decorators syntax before module exports.\n * Defaults to `false`.\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n\n /**\n * Options for outputting jsesc representation.\n */\n jsescOption?: jsescOptions;\n\n /**\n * For use with the recordAndTuple token.\n */\n recordAndTupleSyntaxType?: RecordAndTuplePluginOptions[\"syntaxType\"];\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: PipelineOperatorPluginOptions[\"topicToken\"];\n}\n\nexport interface GeneratorResult {\n code: string;\n map: {\n version: number;\n sources: readonly string[];\n names: readonly string[];\n sourceRoot?: string;\n sourcesContent?: readonly string[];\n mappings: string;\n file?: string;\n } | null;\n decodedMap: DecodedSourceMap | undefined;\n rawMappings: Mapping[] | undefined;\n}\n\n/**\n * We originally exported the Generator class above, but to make it extra clear that it is a private API,\n * we have moved that to an internal class instance and simplified the interface to the two public methods\n * that we wish to support.\n */\n\nexport class CodeGenerator {\n private _generator: Generator;\n constructor(ast: t.Node, opts?: GeneratorOptions, code?: string) {\n this._generator = new Generator(ast, opts, code);\n }\n generate(): GeneratorResult {\n return this._generator.generate();\n }\n}\n\n/**\n * Turns an AST into code, maintaining sourcemaps, user preferences, and valid output.\n * @param ast - the abstract syntax tree from which to generate output code.\n * @param opts - used for specifying options for code generation.\n * @param code - the original source code, used for source maps.\n * @returns - an object containing the output code and source map.\n */\nexport default function generate(\n ast: t.Node,\n opts?: GeneratorOptions,\n code?: string | { [filename: string]: string },\n) {\n const gen = new Generator(ast, opts, code);\n return gen.generate();\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/node/index.js b/node_modules/@babel/generator/lib/node/index.js new file mode 100755 index 0000000..d42879d --- /dev/null +++ b/node_modules/@babel/generator/lib/node/index.js @@ -0,0 +1,79 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.needsParens = needsParens; +exports.needsWhitespace = needsWhitespace; +exports.needsWhitespaceAfter = needsWhitespaceAfter; +exports.needsWhitespaceBefore = needsWhitespaceBefore; +var whitespace = require("./whitespace"); +var parens = require("./parentheses"); +var _t = require("@babel/types"); +const { + FLIPPED_ALIAS_KEYS, + isCallExpression, + isExpressionStatement, + isMemberExpression, + isNewExpression +} = _t; +function expandAliases(obj) { + const newObj = {}; + function add(type, func) { + const fn = newObj[type]; + newObj[type] = fn ? function (node, parent, stack) { + const result = fn(node, parent, stack); + return result == null ? func(node, parent, stack) : result; + } : func; + } + for (const type of Object.keys(obj)) { + const aliases = FLIPPED_ALIAS_KEYS[type]; + if (aliases) { + for (const alias of aliases) { + add(alias, obj[type]); + } + } else { + add(type, obj[type]); + } + } + return newObj; +} + +const expandedParens = expandAliases(parens); +const expandedWhitespaceNodes = expandAliases(whitespace.nodes); +function find(obj, node, parent, printStack) { + const fn = obj[node.type]; + return fn ? fn(node, parent, printStack) : null; +} +function isOrHasCallExpression(node) { + if (isCallExpression(node)) { + return true; + } + return isMemberExpression(node) && isOrHasCallExpression(node.object); +} +function needsWhitespace(node, parent, type) { + if (!node) return false; + if (isExpressionStatement(node)) { + node = node.expression; + } + const flag = find(expandedWhitespaceNodes, node, parent); + if (typeof flag === "number") { + return (flag & type) !== 0; + } + return false; +} +function needsWhitespaceBefore(node, parent) { + return needsWhitespace(node, parent, 1); +} +function needsWhitespaceAfter(node, parent) { + return needsWhitespace(node, parent, 2); +} +function needsParens(node, parent, printStack) { + if (!parent) return false; + if (isNewExpression(parent) && parent.callee === node) { + if (isOrHasCallExpression(node)) return true; + } + return find(expandedParens, node, parent, printStack); +} + +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/generator/lib/node/index.js.map b/node_modules/@babel/generator/lib/node/index.js.map new file mode 100755 index 0000000..2687e39 --- /dev/null +++ b/node_modules/@babel/generator/lib/node/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["FLIPPED_ALIAS_KEYS","isCallExpression","isExpressionStatement","isMemberExpression","isNewExpression","expandAliases","obj","newObj","add","type","func","fn","node","parent","stack","result","Object","keys","aliases","alias","expandedParens","parens","expandedWhitespaceNodes","whitespace","nodes","find","printStack","isOrHasCallExpression","object","needsWhitespace","expression","flag","needsWhitespaceBefore","needsWhitespaceAfter","needsParens","callee"],"sources":["../../src/node/index.ts"],"sourcesContent":["import * as whitespace from \"./whitespace\";\nimport * as parens from \"./parentheses\";\nimport {\n FLIPPED_ALIAS_KEYS,\n isCallExpression,\n isExpressionStatement,\n isMemberExpression,\n isNewExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport type { WhitespaceFlag } from \"./whitespace\";\n\nexport type NodeHandlers = {\n [K in string]?: (\n node: K extends t.Node[\"type\"] ? Extract : t.Node,\n // todo:\n // node: K extends keyof typeof t\n // ? Extract\n // : t.Node,\n parent: t.Node,\n stack: t.Node[],\n ) => R;\n};\n\nfunction expandAliases(obj: NodeHandlers) {\n const newObj: NodeHandlers = {};\n\n function add(\n type: string,\n func: (node: t.Node, parent: t.Node, stack: t.Node[]) => R,\n ) {\n const fn = newObj[type];\n newObj[type] = fn\n ? function (node, parent, stack) {\n const result = fn(node, parent, stack);\n\n return result == null ? func(node, parent, stack) : result;\n }\n : func;\n }\n\n for (const type of Object.keys(obj)) {\n const aliases = FLIPPED_ALIAS_KEYS[type];\n if (aliases) {\n for (const alias of aliases) {\n add(alias, obj[type]);\n }\n } else {\n add(type, obj[type]);\n }\n }\n\n return newObj;\n}\n\n// Rather than using `t.is` on each object property, we pre-expand any type aliases\n// into concrete types so that the 'find' call below can be as fast as possible.\nconst expandedParens = expandAliases(parens);\nconst expandedWhitespaceNodes = expandAliases(whitespace.nodes);\n\nfunction find(\n obj: NodeHandlers,\n node: t.Node,\n parent: t.Node,\n printStack?: t.Node[],\n): R | null {\n const fn = obj[node.type];\n return fn ? fn(node, parent, printStack) : null;\n}\n\nfunction isOrHasCallExpression(node: t.Node): boolean {\n if (isCallExpression(node)) {\n return true;\n }\n\n return isMemberExpression(node) && isOrHasCallExpression(node.object);\n}\n\nexport function needsWhitespace(\n node: t.Node,\n parent: t.Node,\n type: WhitespaceFlag,\n): boolean {\n if (!node) return false;\n\n if (isExpressionStatement(node)) {\n node = node.expression;\n }\n\n const flag = find(expandedWhitespaceNodes, node, parent);\n\n if (typeof flag === \"number\") {\n return (flag & type) !== 0;\n }\n\n return false;\n}\n\nexport function needsWhitespaceBefore(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 1);\n}\n\nexport function needsWhitespaceAfter(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 2);\n}\n\nexport function needsParens(\n node: t.Node,\n parent: t.Node,\n printStack?: t.Node[],\n) {\n if (!parent) return false;\n\n if (isNewExpression(parent) && parent.callee === node) {\n if (isOrHasCallExpression(node)) return true;\n }\n\n return find(expandedParens, node, parent, printStack);\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/node/parentheses.js b/node_modules/@babel/generator/lib/node/parentheses.js new file mode 100755 index 0000000..47b3c91 --- /dev/null +++ b/node_modules/@babel/generator/lib/node/parentheses.js @@ -0,0 +1,316 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ArrowFunctionExpression = ArrowFunctionExpression; +exports.AssignmentExpression = AssignmentExpression; +exports.Binary = Binary; +exports.BinaryExpression = BinaryExpression; +exports.ClassExpression = ClassExpression; +exports.ConditionalExpression = ConditionalExpression; +exports.DoExpression = DoExpression; +exports.FunctionExpression = FunctionExpression; +exports.FunctionTypeAnnotation = FunctionTypeAnnotation; +exports.Identifier = Identifier; +exports.LogicalExpression = LogicalExpression; +exports.NullableTypeAnnotation = NullableTypeAnnotation; +exports.ObjectExpression = ObjectExpression; +exports.OptionalIndexedAccessType = OptionalIndexedAccessType; +exports.OptionalCallExpression = exports.OptionalMemberExpression = OptionalMemberExpression; +exports.SequenceExpression = SequenceExpression; +exports.TSTypeAssertion = exports.TSSatisfiesExpression = exports.TSAsExpression = TSAsExpression; +exports.TSInferType = TSInferType; +exports.TSInstantiationExpression = TSInstantiationExpression; +exports.TSIntersectionType = exports.TSUnionType = TSUnionType; +exports.UnaryLike = UnaryLike; +exports.IntersectionTypeAnnotation = exports.UnionTypeAnnotation = UnionTypeAnnotation; +exports.UpdateExpression = UpdateExpression; +exports.AwaitExpression = exports.YieldExpression = YieldExpression; +var _t = require("@babel/types"); +const { + isArrayTypeAnnotation, + isArrowFunctionExpression, + isAssignmentExpression, + isAwaitExpression, + isBinary, + isBinaryExpression, + isUpdateExpression, + isCallExpression, + isClass, + isClassExpression, + isConditional, + isConditionalExpression, + isExportDeclaration, + isExportDefaultDeclaration, + isExpressionStatement, + isFor, + isForInStatement, + isForOfStatement, + isForStatement, + isFunctionExpression, + isIfStatement, + isIndexedAccessType, + isIntersectionTypeAnnotation, + isLogicalExpression, + isMemberExpression, + isNewExpression, + isNullableTypeAnnotation, + isObjectPattern, + isOptionalCallExpression, + isOptionalMemberExpression, + isReturnStatement, + isSequenceExpression, + isSwitchStatement, + isTSArrayType, + isTSAsExpression, + isTSInstantiationExpression, + isTSIntersectionType, + isTSNonNullExpression, + isTSOptionalType, + isTSRestType, + isTSTypeAssertion, + isTSUnionType, + isTaggedTemplateExpression, + isThrowStatement, + isTypeAnnotation, + isUnaryLike, + isUnionTypeAnnotation, + isVariableDeclarator, + isWhileStatement, + isYieldExpression, + isTSSatisfiesExpression +} = _t; +const PRECEDENCE = { + "||": 0, + "??": 0, + "|>": 0, + "&&": 1, + "|": 2, + "^": 3, + "&": 4, + "==": 5, + "===": 5, + "!=": 5, + "!==": 5, + "<": 6, + ">": 6, + "<=": 6, + ">=": 6, + in: 6, + instanceof: 6, + ">>": 7, + "<<": 7, + ">>>": 7, + "+": 8, + "-": 8, + "*": 9, + "/": 9, + "%": 9, + "**": 10 +}; +function isTSTypeExpression(node) { + return isTSAsExpression(node) || isTSSatisfiesExpression(node) || isTSTypeAssertion(node); +} +const isClassExtendsClause = (node, parent) => isClass(parent, { + superClass: node +}); +const hasPostfixPart = (node, parent) => (isMemberExpression(parent) || isOptionalMemberExpression(parent)) && parent.object === node || (isCallExpression(parent) || isOptionalCallExpression(parent) || isNewExpression(parent)) && parent.callee === node || isTaggedTemplateExpression(parent) && parent.tag === node || isTSNonNullExpression(parent); +function NullableTypeAnnotation(node, parent) { + return isArrayTypeAnnotation(parent); +} +function FunctionTypeAnnotation(node, parent, printStack) { + if (printStack.length < 3) return; + return ( + isUnionTypeAnnotation(parent) || + isIntersectionTypeAnnotation(parent) || + isArrayTypeAnnotation(parent) || + isTypeAnnotation(parent) && + isArrowFunctionExpression(printStack[printStack.length - 3]) + ); +} +function UpdateExpression(node, parent) { + return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent); +} +function ObjectExpression(node, parent, printStack) { + return isFirstInContext(printStack, 1 | 2); +} +function DoExpression(node, parent, printStack) { + return !node.async && isFirstInContext(printStack, 1); +} +function Binary(node, parent) { + if (node.operator === "**" && isBinaryExpression(parent, { + operator: "**" + })) { + return parent.left === node; + } + if (isClassExtendsClause(node, parent)) { + return true; + } + if (hasPostfixPart(node, parent) || isUnaryLike(parent) || isAwaitExpression(parent)) { + return true; + } + if (isBinary(parent)) { + const parentOp = parent.operator; + const parentPos = PRECEDENCE[parentOp]; + const nodeOp = node.operator; + const nodePos = PRECEDENCE[nodeOp]; + if ( + parentPos === nodePos && parent.right === node && !isLogicalExpression(parent) || parentPos > nodePos) { + return true; + } + } +} +function UnionTypeAnnotation(node, parent) { + return isArrayTypeAnnotation(parent) || isNullableTypeAnnotation(parent) || isIntersectionTypeAnnotation(parent) || isUnionTypeAnnotation(parent); +} +function OptionalIndexedAccessType(node, parent) { + return isIndexedAccessType(parent, { + objectType: node + }); +} +function TSAsExpression() { + return true; +} +function TSUnionType(node, parent) { + return isTSArrayType(parent) || isTSOptionalType(parent) || isTSIntersectionType(parent) || isTSUnionType(parent) || isTSRestType(parent); +} +function TSInferType(node, parent) { + return isTSArrayType(parent) || isTSOptionalType(parent); +} +function TSInstantiationExpression(node, parent) { + return (isCallExpression(parent) || isOptionalCallExpression(parent) || isNewExpression(parent) || isTSInstantiationExpression(parent)) && !!parent.typeParameters; +} +function BinaryExpression(node, parent) { + return node.operator === "in" && (isVariableDeclarator(parent) || isFor(parent)); +} +function SequenceExpression(node, parent) { + if ( + isForStatement(parent) || isThrowStatement(parent) || isReturnStatement(parent) || isIfStatement(parent) && parent.test === node || isWhileStatement(parent) && parent.test === node || isForInStatement(parent) && parent.right === node || isSwitchStatement(parent) && parent.discriminant === node || isExpressionStatement(parent) && parent.expression === node) { + return false; + } + + return true; +} +function YieldExpression(node, parent) { + return isBinary(parent) || isUnaryLike(parent) || hasPostfixPart(node, parent) || isAwaitExpression(parent) && isYieldExpression(node) || isConditionalExpression(parent) && node === parent.test || isClassExtendsClause(node, parent); +} +function ClassExpression(node, parent, printStack) { + return isFirstInContext(printStack, 1 | 4); +} +function UnaryLike(node, parent) { + return hasPostfixPart(node, parent) || isBinaryExpression(parent, { + operator: "**", + left: node + }) || isClassExtendsClause(node, parent); +} +function FunctionExpression(node, parent, printStack) { + return isFirstInContext(printStack, 1 | 4); +} +function ArrowFunctionExpression(node, parent) { + return isExportDeclaration(parent) || ConditionalExpression(node, parent); +} +function ConditionalExpression(node, parent) { + if (isUnaryLike(parent) || isBinary(parent) || isConditionalExpression(parent, { + test: node + }) || isAwaitExpression(parent) || isTSTypeExpression(parent)) { + return true; + } + return UnaryLike(node, parent); +} +function OptionalMemberExpression(node, parent) { + return isCallExpression(parent, { + callee: node + }) || isMemberExpression(parent, { + object: node + }); +} +function AssignmentExpression(node, parent) { + if (isObjectPattern(node.left)) { + return true; + } else { + return ConditionalExpression(node, parent); + } +} +function LogicalExpression(node, parent) { + if (isTSTypeExpression(parent)) return true; + switch (node.operator) { + case "||": + if (!isLogicalExpression(parent)) return false; + return parent.operator === "??" || parent.operator === "&&"; + case "&&": + return isLogicalExpression(parent, { + operator: "??" + }); + case "??": + return isLogicalExpression(parent) && parent.operator !== "??"; + } +} +function Identifier(node, parent, printStack) { + var _node$extra; + if ((_node$extra = node.extra) != null && _node$extra.parenthesized && isAssignmentExpression(parent, { + left: node + }) && (isFunctionExpression(parent.right) || isClassExpression(parent.right)) && parent.right.id == null) { + return true; + } + if (node.name === "let") { + const isFollowedByBracket = isMemberExpression(parent, { + object: node, + computed: true + }) || isOptionalMemberExpression(parent, { + object: node, + computed: true, + optional: false + }); + return isFirstInContext(printStack, isFollowedByBracket ? 1 | 8 | 16 | 32 : 32); + } + + return node.name === "async" && isForOfStatement(parent) && node === parent.left; +} + +function isFirstInContext(printStack, checkParam) { + const expressionStatement = checkParam & 1; + const arrowBody = checkParam & 2; + const exportDefault = checkParam & 4; + const forHead = checkParam & 8; + const forInHead = checkParam & 16; + const forOfHead = checkParam & 32; + let i = printStack.length - 1; + if (i <= 0) return; + let node = printStack[i]; + i--; + let parent = printStack[i]; + while (i >= 0) { + if (expressionStatement && isExpressionStatement(parent, { + expression: node + }) || exportDefault && isExportDefaultDeclaration(parent, { + declaration: node + }) || arrowBody && isArrowFunctionExpression(parent, { + body: node + }) || forHead && isForStatement(parent, { + init: node + }) || forInHead && isForInStatement(parent, { + left: node + }) || forOfHead && isForOfStatement(parent, { + left: node + })) { + return true; + } + if (i > 0 && (hasPostfixPart(node, parent) && !isNewExpression(parent) || isSequenceExpression(parent) && parent.expressions[0] === node || isUpdateExpression(parent) && !parent.prefix || isConditional(parent, { + test: node + }) || isBinary(parent, { + left: node + }) || isAssignmentExpression(parent, { + left: node + }))) { + node = parent; + i--; + parent = printStack[i]; + } else { + return false; + } + } + return false; +} + +//# sourceMappingURL=parentheses.js.map diff --git a/node_modules/@babel/generator/lib/node/parentheses.js.map b/node_modules/@babel/generator/lib/node/parentheses.js.map new file mode 100755 index 0000000..d2d1803 --- /dev/null +++ b/node_modules/@babel/generator/lib/node/parentheses.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isArrayTypeAnnotation","isArrowFunctionExpression","isAssignmentExpression","isAwaitExpression","isBinary","isBinaryExpression","isUpdateExpression","isCallExpression","isClass","isClassExpression","isConditional","isConditionalExpression","isExportDeclaration","isExportDefaultDeclaration","isExpressionStatement","isFor","isForInStatement","isForOfStatement","isForStatement","isFunctionExpression","isIfStatement","isIndexedAccessType","isIntersectionTypeAnnotation","isLogicalExpression","isMemberExpression","isNewExpression","isNullableTypeAnnotation","isObjectPattern","isOptionalCallExpression","isOptionalMemberExpression","isReturnStatement","isSequenceExpression","isSwitchStatement","isTSArrayType","isTSAsExpression","isTSInstantiationExpression","isTSIntersectionType","isTSNonNullExpression","isTSOptionalType","isTSRestType","isTSTypeAssertion","isTSUnionType","isTaggedTemplateExpression","isThrowStatement","isTypeAnnotation","isUnaryLike","isUnionTypeAnnotation","isVariableDeclarator","isWhileStatement","isYieldExpression","isTSSatisfiesExpression","PRECEDENCE","in","instanceof","isTSTypeExpression","node","isClassExtendsClause","parent","superClass","hasPostfixPart","object","callee","tag","NullableTypeAnnotation","FunctionTypeAnnotation","printStack","length","UpdateExpression","ObjectExpression","isFirstInContext","DoExpression","async","Binary","operator","left","parentOp","parentPos","nodeOp","nodePos","right","UnionTypeAnnotation","OptionalIndexedAccessType","objectType","TSAsExpression","TSUnionType","TSInferType","TSInstantiationExpression","typeParameters","BinaryExpression","SequenceExpression","test","discriminant","expression","YieldExpression","ClassExpression","UnaryLike","FunctionExpression","ArrowFunctionExpression","ConditionalExpression","OptionalMemberExpression","AssignmentExpression","LogicalExpression","Identifier","extra","parenthesized","id","name","isFollowedByBracket","computed","optional","checkParam","expressionStatement","arrowBody","exportDefault","forHead","forInHead","forOfHead","i","declaration","body","init","expressions","prefix"],"sources":["../../src/node/parentheses.ts"],"sourcesContent":["import {\n isArrayTypeAnnotation,\n isArrowFunctionExpression,\n isAssignmentExpression,\n isAwaitExpression,\n isBinary,\n isBinaryExpression,\n isUpdateExpression,\n isCallExpression,\n isClass,\n isClassExpression,\n isConditional,\n isConditionalExpression,\n isExportDeclaration,\n isExportDefaultDeclaration,\n isExpressionStatement,\n isFor,\n isForInStatement,\n isForOfStatement,\n isForStatement,\n isFunctionExpression,\n isIfStatement,\n isIndexedAccessType,\n isIntersectionTypeAnnotation,\n isLogicalExpression,\n isMemberExpression,\n isNewExpression,\n isNullableTypeAnnotation,\n isObjectPattern,\n isOptionalCallExpression,\n isOptionalMemberExpression,\n isReturnStatement,\n isSequenceExpression,\n isSwitchStatement,\n isTSArrayType,\n isTSAsExpression,\n isTSInstantiationExpression,\n isTSIntersectionType,\n isTSNonNullExpression,\n isTSOptionalType,\n isTSRestType,\n isTSTypeAssertion,\n isTSUnionType,\n isTaggedTemplateExpression,\n isThrowStatement,\n isTypeAnnotation,\n isUnaryLike,\n isUnionTypeAnnotation,\n isVariableDeclarator,\n isWhileStatement,\n isYieldExpression,\n isTSSatisfiesExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nconst PRECEDENCE = {\n \"||\": 0,\n \"??\": 0,\n \"|>\": 0,\n \"&&\": 1,\n \"|\": 2,\n \"^\": 3,\n \"&\": 4,\n \"==\": 5,\n \"===\": 5,\n \"!=\": 5,\n \"!==\": 5,\n \"<\": 6,\n \">\": 6,\n \"<=\": 6,\n \">=\": 6,\n in: 6,\n instanceof: 6,\n \">>\": 7,\n \"<<\": 7,\n \">>>\": 7,\n \"+\": 8,\n \"-\": 8,\n \"*\": 9,\n \"/\": 9,\n \"%\": 9,\n \"**\": 10,\n};\n\nconst enum CheckParam {\n expressionStatement = 1 << 0,\n arrowBody = 1 << 1,\n exportDefault = 1 << 2,\n forHead = 1 << 3,\n forInHead = 1 << 4,\n forOfHead = 1 << 5,\n}\n\nfunction isTSTypeExpression(node: t.Node) {\n return (\n isTSAsExpression(node) ||\n isTSSatisfiesExpression(node) ||\n isTSTypeAssertion(node)\n );\n}\n\nconst isClassExtendsClause = (\n node: t.Node,\n parent: t.Node,\n): parent is t.Class => isClass(parent, { superClass: node });\n\nconst hasPostfixPart = (node: t.Node, parent: t.Node) =>\n ((isMemberExpression(parent) || isOptionalMemberExpression(parent)) &&\n parent.object === node) ||\n ((isCallExpression(parent) ||\n isOptionalCallExpression(parent) ||\n isNewExpression(parent)) &&\n parent.callee === node) ||\n (isTaggedTemplateExpression(parent) && parent.tag === node) ||\n isTSNonNullExpression(parent);\n\nexport function NullableTypeAnnotation(\n node: t.NullableTypeAnnotation,\n parent: t.Node,\n): boolean {\n return isArrayTypeAnnotation(parent);\n}\n\nexport function FunctionTypeAnnotation(\n node: t.FunctionTypeAnnotation,\n parent: t.Node,\n printStack: Array,\n): boolean {\n if (printStack.length < 3) return;\n\n return (\n // (() => A) | (() => B)\n isUnionTypeAnnotation(parent) ||\n // (() => A) & (() => B)\n isIntersectionTypeAnnotation(parent) ||\n // (() => A)[]\n isArrayTypeAnnotation(parent) ||\n // (A: T): (T => T[]) => B => [A, B]\n (isTypeAnnotation(parent) &&\n // Check grandparent\n isArrowFunctionExpression(printStack[printStack.length - 3]))\n );\n}\n\nexport function UpdateExpression(\n node: t.UpdateExpression,\n parent: t.Node,\n): boolean {\n return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent);\n}\n\nexport function ObjectExpression(\n node: t.ObjectExpression,\n parent: t.Node,\n printStack: Array,\n): boolean {\n return isFirstInContext(\n printStack,\n CheckParam.expressionStatement | CheckParam.arrowBody,\n );\n}\n\nexport function DoExpression(\n node: t.DoExpression,\n parent: t.Node,\n printStack: Array,\n): boolean {\n // `async do` can start an expression statement\n return (\n !node.async && isFirstInContext(printStack, CheckParam.expressionStatement)\n );\n}\n\nexport function Binary(node: t.BinaryExpression, parent: t.Node): boolean {\n if (\n node.operator === \"**\" &&\n isBinaryExpression(parent, { operator: \"**\" })\n ) {\n return parent.left === node;\n }\n\n if (isClassExtendsClause(node, parent)) {\n return true;\n }\n\n if (\n hasPostfixPart(node, parent) ||\n isUnaryLike(parent) ||\n isAwaitExpression(parent)\n ) {\n return true;\n }\n\n if (isBinary(parent)) {\n const parentOp = parent.operator;\n const parentPos = PRECEDENCE[parentOp];\n\n const nodeOp = node.operator;\n const nodePos = PRECEDENCE[nodeOp];\n\n if (\n // Logical expressions with the same precedence don't need parens.\n (parentPos === nodePos &&\n parent.right === node &&\n !isLogicalExpression(parent)) ||\n parentPos > nodePos\n ) {\n return true;\n }\n }\n}\n\nexport function UnionTypeAnnotation(\n node: t.UnionTypeAnnotation,\n parent: t.Node,\n): boolean {\n return (\n isArrayTypeAnnotation(parent) ||\n isNullableTypeAnnotation(parent) ||\n isIntersectionTypeAnnotation(parent) ||\n isUnionTypeAnnotation(parent)\n );\n}\n\nexport { UnionTypeAnnotation as IntersectionTypeAnnotation };\n\nexport function OptionalIndexedAccessType(\n node: t.OptionalIndexedAccessType,\n parent: t.Node,\n): boolean {\n return isIndexedAccessType(parent, { objectType: node });\n}\n\nexport function TSAsExpression() {\n return true;\n}\n\nexport {\n TSAsExpression as TSSatisfiesExpression,\n TSAsExpression as TSTypeAssertion,\n};\n\nexport function TSUnionType(node: t.TSUnionType, parent: t.Node): boolean {\n return (\n isTSArrayType(parent) ||\n isTSOptionalType(parent) ||\n isTSIntersectionType(parent) ||\n isTSUnionType(parent) ||\n isTSRestType(parent)\n );\n}\n\nexport { TSUnionType as TSIntersectionType };\n\nexport function TSInferType(node: t.TSInferType, parent: t.Node): boolean {\n return isTSArrayType(parent) || isTSOptionalType(parent);\n}\n\nexport function TSInstantiationExpression(\n node: t.TSInstantiationExpression,\n parent: t.Node,\n) {\n return (\n (isCallExpression(parent) ||\n isOptionalCallExpression(parent) ||\n isNewExpression(parent) ||\n isTSInstantiationExpression(parent)) &&\n !!parent.typeParameters\n );\n}\n\nexport function BinaryExpression(\n node: t.BinaryExpression,\n parent: t.Node,\n): boolean {\n // let i = (1 in []);\n // for ((1 in []);;);\n return (\n node.operator === \"in\" && (isVariableDeclarator(parent) || isFor(parent))\n );\n}\n\nexport function SequenceExpression(\n node: t.SequenceExpression,\n parent: t.Node,\n): boolean {\n if (\n // Although parentheses wouldn\"t hurt around sequence\n // expressions in the head of for loops, traditional style\n // dictates that e.g. i++, j++ should not be wrapped with\n // parentheses.\n isForStatement(parent) ||\n isThrowStatement(parent) ||\n isReturnStatement(parent) ||\n (isIfStatement(parent) && parent.test === node) ||\n (isWhileStatement(parent) && parent.test === node) ||\n (isForInStatement(parent) && parent.right === node) ||\n (isSwitchStatement(parent) && parent.discriminant === node) ||\n (isExpressionStatement(parent) && parent.expression === node)\n ) {\n return false;\n }\n\n // Otherwise err on the side of overparenthesization, adding\n // explicit exceptions above if this proves overzealous.\n return true;\n}\n\nexport function YieldExpression(\n node: t.YieldExpression,\n parent: t.Node,\n): boolean {\n return (\n isBinary(parent) ||\n isUnaryLike(parent) ||\n hasPostfixPart(node, parent) ||\n (isAwaitExpression(parent) && isYieldExpression(node)) ||\n (isConditionalExpression(parent) && node === parent.test) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport { YieldExpression as AwaitExpression };\n\nexport function ClassExpression(\n node: t.ClassExpression,\n parent: t.Node,\n printStack: Array,\n): boolean {\n return isFirstInContext(\n printStack,\n CheckParam.expressionStatement | CheckParam.exportDefault,\n );\n}\n\nexport function UnaryLike(\n node:\n | t.UnaryLike\n | t.ArrowFunctionExpression\n | t.ConditionalExpression\n | t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n return (\n hasPostfixPart(node, parent) ||\n isBinaryExpression(parent, { operator: \"**\", left: node }) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport function FunctionExpression(\n node: t.FunctionExpression,\n parent: t.Node,\n printStack: Array,\n): boolean {\n return isFirstInContext(\n printStack,\n CheckParam.expressionStatement | CheckParam.exportDefault,\n );\n}\n\nexport function ArrowFunctionExpression(\n node: t.ArrowFunctionExpression,\n parent: t.Node,\n): boolean {\n return isExportDeclaration(parent) || ConditionalExpression(node, parent);\n}\n\nexport function ConditionalExpression(\n node:\n | t.ConditionalExpression\n | t.ArrowFunctionExpression\n | t.AssignmentExpression,\n parent?: t.Node,\n): boolean {\n if (\n isUnaryLike(parent) ||\n isBinary(parent) ||\n isConditionalExpression(parent, { test: node }) ||\n isAwaitExpression(parent) ||\n isTSTypeExpression(parent)\n ) {\n return true;\n }\n\n return UnaryLike(node, parent);\n}\n\nexport function OptionalMemberExpression(\n node: t.OptionalMemberExpression,\n parent: t.Node,\n): boolean {\n return (\n isCallExpression(parent, { callee: node }) ||\n isMemberExpression(parent, { object: node })\n );\n}\n\nexport { OptionalMemberExpression as OptionalCallExpression };\n\nexport function AssignmentExpression(\n node: t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n if (isObjectPattern(node.left)) {\n return true;\n } else {\n return ConditionalExpression(node, parent);\n }\n}\n\nexport function LogicalExpression(\n node: t.LogicalExpression,\n parent: t.Node,\n): boolean {\n if (isTSTypeExpression(parent)) return true;\n switch (node.operator) {\n case \"||\":\n if (!isLogicalExpression(parent)) return false;\n return parent.operator === \"??\" || parent.operator === \"&&\";\n case \"&&\":\n return isLogicalExpression(parent, { operator: \"??\" });\n case \"??\":\n return isLogicalExpression(parent) && parent.operator !== \"??\";\n }\n}\n\nexport function Identifier(\n node: t.Identifier,\n parent: t.Node,\n printStack: Array,\n): boolean {\n // 13.15.2 AssignmentExpression RS: Evaluation\n // (fn) = function () {};\n if (\n node.extra?.parenthesized &&\n isAssignmentExpression(parent, { left: node }) &&\n (isFunctionExpression(parent.right) || isClassExpression(parent.right)) &&\n parent.right.id == null\n ) {\n return true;\n }\n // Non-strict code allows the identifier `let`, but it cannot occur as-is in\n // certain contexts to avoid ambiguity with contextual keyword `let`.\n if (node.name === \"let\") {\n // Some contexts only forbid `let [`, so check if the next token would\n // be the left bracket of a computed member expression.\n const isFollowedByBracket =\n isMemberExpression(parent, {\n object: node,\n computed: true,\n }) ||\n isOptionalMemberExpression(parent, {\n object: node,\n computed: true,\n optional: false,\n });\n return isFirstInContext(\n printStack,\n isFollowedByBracket\n ? CheckParam.expressionStatement |\n CheckParam.forHead |\n CheckParam.forInHead |\n CheckParam.forOfHead\n : CheckParam.forOfHead,\n );\n }\n\n // ECMAScript specifically forbids a for-of loop from starting with the\n // token sequence `for (async of`, because it would be ambiguous with\n // `for (async of => {};;)`, so we need to add extra parentheses.\n //\n // If the parent is a for-await-of loop (i.e. parent.await === true), the\n // parentheses aren't strictly needed, but we add them anyway because\n // some tools (including earlier Babel versions) can't parse\n // `for await (async of [])` without them.\n return (\n node.name === \"async\" && isForOfStatement(parent) && node === parent.left\n );\n}\n\n// Walk up the print stack to determine if our node can come first\n// in a particular context.\nfunction isFirstInContext(\n printStack: Array,\n checkParam: CheckParam,\n): boolean {\n const expressionStatement = checkParam & CheckParam.expressionStatement;\n const arrowBody = checkParam & CheckParam.arrowBody;\n const exportDefault = checkParam & CheckParam.exportDefault;\n const forHead = checkParam & CheckParam.forHead;\n const forInHead = checkParam & CheckParam.forInHead;\n const forOfHead = checkParam & CheckParam.forOfHead;\n\n let i = printStack.length - 1;\n if (i <= 0) return;\n let node = printStack[i];\n i--;\n let parent = printStack[i];\n while (i >= 0) {\n if (\n (expressionStatement &&\n isExpressionStatement(parent, { expression: node })) ||\n (exportDefault &&\n isExportDefaultDeclaration(parent, { declaration: node })) ||\n (arrowBody && isArrowFunctionExpression(parent, { body: node })) ||\n (forHead && isForStatement(parent, { init: node })) ||\n (forInHead && isForInStatement(parent, { left: node })) ||\n (forOfHead && isForOfStatement(parent, { left: node }))\n ) {\n return true;\n }\n\n if (\n i > 0 &&\n ((hasPostfixPart(node, parent) && !isNewExpression(parent)) ||\n (isSequenceExpression(parent) && parent.expressions[0] === node) ||\n (isUpdateExpression(parent) && !parent.prefix) ||\n isConditional(parent, { test: node }) ||\n isBinary(parent, { left: node }) ||\n isAssignmentExpression(parent, { left: node }))\n ) {\n node = parent;\n i--;\n parent = printStack[i];\n } else {\n return false;\n }\n }\n\n return false;\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/node/whitespace.js b/node_modules/@babel/generator/lib/node/whitespace.js new file mode 100755 index 0000000..e5196fb --- /dev/null +++ b/node_modules/@babel/generator/lib/node/whitespace.js @@ -0,0 +1,160 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.nodes = void 0; +var _t = require("@babel/types"); +const { + FLIPPED_ALIAS_KEYS, + isArrayExpression, + isAssignmentExpression, + isBinary, + isBlockStatement, + isCallExpression, + isFunction, + isIdentifier, + isLiteral, + isMemberExpression, + isObjectExpression, + isOptionalCallExpression, + isOptionalMemberExpression, + isStringLiteral +} = _t; +function crawlInternal(node, state) { + if (!node) return state; + if (isMemberExpression(node) || isOptionalMemberExpression(node)) { + crawlInternal(node.object, state); + if (node.computed) crawlInternal(node.property, state); + } else if (isBinary(node) || isAssignmentExpression(node)) { + crawlInternal(node.left, state); + crawlInternal(node.right, state); + } else if (isCallExpression(node) || isOptionalCallExpression(node)) { + state.hasCall = true; + crawlInternal(node.callee, state); + } else if (isFunction(node)) { + state.hasFunction = true; + } else if (isIdentifier(node)) { + state.hasHelper = + state.hasHelper || node.callee && isHelper(node.callee); + } + return state; +} + +function crawl(node) { + return crawlInternal(node, { + hasCall: false, + hasFunction: false, + hasHelper: false + }); +} + +function isHelper(node) { + if (!node) return false; + if (isMemberExpression(node)) { + return isHelper(node.object) || isHelper(node.property); + } else if (isIdentifier(node)) { + return node.name === "require" || node.name.charCodeAt(0) === 95; + } else if (isCallExpression(node)) { + return isHelper(node.callee); + } else if (isBinary(node) || isAssignmentExpression(node)) { + return isIdentifier(node.left) && isHelper(node.left) || isHelper(node.right); + } else { + return false; + } +} +function isType(node) { + return isLiteral(node) || isObjectExpression(node) || isArrayExpression(node) || isIdentifier(node) || isMemberExpression(node); +} + +const nodes = { + + AssignmentExpression(node) { + const state = crawl(node.right); + if (state.hasCall && state.hasHelper || state.hasFunction) { + return state.hasFunction ? 1 | 2 : 2; + } + }, + + SwitchCase(node, parent) { + return (!!node.consequent.length || parent.cases[0] === node ? 1 : 0) | (!node.consequent.length && parent.cases[parent.cases.length - 1] === node ? 2 : 0); + }, + + LogicalExpression(node) { + if (isFunction(node.left) || isFunction(node.right)) { + return 2; + } + }, + + Literal(node) { + if (isStringLiteral(node) && node.value === "use strict") { + return 2; + } + }, + + CallExpression(node) { + if (isFunction(node.callee) || isHelper(node)) { + return 1 | 2; + } + }, + OptionalCallExpression(node) { + if (isFunction(node.callee)) { + return 1 | 2; + } + }, + + VariableDeclaration(node) { + for (let i = 0; i < node.declarations.length; i++) { + const declar = node.declarations[i]; + let enabled = isHelper(declar.id) && !isType(declar.init); + if (!enabled && declar.init) { + const state = crawl(declar.init); + enabled = isHelper(declar.init) && state.hasCall || state.hasFunction; + } + if (enabled) { + return 1 | 2; + } + } + }, + + IfStatement(node) { + if (isBlockStatement(node.consequent)) { + return 1 | 2; + } + } +}; + +exports.nodes = nodes; + +nodes.ObjectProperty = nodes.ObjectTypeProperty = nodes.ObjectMethod = function (node, parent) { + if (parent.properties[0] === node) { + return 1; + } +}; +nodes.ObjectTypeCallProperty = function (node, parent) { + var _parent$properties; + if (parent.callProperties[0] === node && !((_parent$properties = parent.properties) != null && _parent$properties.length)) { + return 1; + } +}; +nodes.ObjectTypeIndexer = function (node, parent) { + var _parent$properties2, _parent$callPropertie; + if (parent.indexers[0] === node && !((_parent$properties2 = parent.properties) != null && _parent$properties2.length) && !((_parent$callPropertie = parent.callProperties) != null && _parent$callPropertie.length)) { + return 1; + } +}; +nodes.ObjectTypeInternalSlot = function (node, parent) { + var _parent$properties3, _parent$callPropertie2, _parent$indexers; + if (parent.internalSlots[0] === node && !((_parent$properties3 = parent.properties) != null && _parent$properties3.length) && !((_parent$callPropertie2 = parent.callProperties) != null && _parent$callPropertie2.length) && !((_parent$indexers = parent.indexers) != null && _parent$indexers.length)) { + return 1; + } +}; + +[["Function", true], ["Class", true], ["Loop", true], ["LabeledStatement", true], ["SwitchStatement", true], ["TryStatement", true]].forEach(function ([type, amounts]) { + [type].concat(FLIPPED_ALIAS_KEYS[type] || []).forEach(function (type) { + const ret = amounts ? 1 | 2 : 0; + nodes[type] = () => ret; + }); +}); + +//# sourceMappingURL=whitespace.js.map diff --git a/node_modules/@babel/generator/lib/node/whitespace.js.map b/node_modules/@babel/generator/lib/node/whitespace.js.map new file mode 100755 index 0000000..e1232cf --- /dev/null +++ b/node_modules/@babel/generator/lib/node/whitespace.js.map @@ -0,0 +1 @@ +{"version":3,"names":["FLIPPED_ALIAS_KEYS","isArrayExpression","isAssignmentExpression","isBinary","isBlockStatement","isCallExpression","isFunction","isIdentifier","isLiteral","isMemberExpression","isObjectExpression","isOptionalCallExpression","isOptionalMemberExpression","isStringLiteral","crawlInternal","node","state","object","computed","property","left","right","hasCall","callee","hasFunction","hasHelper","isHelper","crawl","name","charCodeAt","isType","nodes","AssignmentExpression","SwitchCase","parent","consequent","length","cases","LogicalExpression","Literal","value","CallExpression","OptionalCallExpression","VariableDeclaration","i","declarations","declar","enabled","id","init","IfStatement","ObjectProperty","ObjectTypeProperty","ObjectMethod","properties","ObjectTypeCallProperty","callProperties","ObjectTypeIndexer","indexers","ObjectTypeInternalSlot","internalSlots","forEach","type","amounts","concat","ret"],"sources":["../../src/node/whitespace.ts"],"sourcesContent":["import {\n FLIPPED_ALIAS_KEYS,\n isArrayExpression,\n isAssignmentExpression,\n isBinary,\n isBlockStatement,\n isCallExpression,\n isFunction,\n isIdentifier,\n isLiteral,\n isMemberExpression,\n isObjectExpression,\n isOptionalCallExpression,\n isOptionalMemberExpression,\n isStringLiteral,\n} from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nimport type { NodeHandlers } from \"./index\";\n\nimport type * as t from \"@babel/types\";\n\nconst enum WhitespaceFlag {\n before = 1 << 0,\n after = 1 << 1,\n}\n\nexport type { WhitespaceFlag };\n\nfunction crawlInternal(\n node: t.Node,\n state: { hasCall: boolean; hasFunction: boolean; hasHelper: boolean },\n) {\n if (!node) return state;\n\n if (isMemberExpression(node) || isOptionalMemberExpression(node)) {\n crawlInternal(node.object, state);\n if (node.computed) crawlInternal(node.property, state);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n crawlInternal(node.left, state);\n crawlInternal(node.right, state);\n } else if (isCallExpression(node) || isOptionalCallExpression(node)) {\n state.hasCall = true;\n crawlInternal(node.callee, state);\n } else if (isFunction(node)) {\n state.hasFunction = true;\n } else if (isIdentifier(node)) {\n state.hasHelper =\n // @ts-expect-error todo(flow->ts): node.callee is not really expected here…\n state.hasHelper || (node.callee && isHelper(node.callee));\n }\n\n return state;\n}\n\n/**\n * Crawl a node to test if it contains a CallExpression, a Function, or a Helper.\n *\n * @example\n * crawl(node)\n * // { hasCall: false, hasFunction: true, hasHelper: false }\n */\n\nfunction crawl(node: t.Node) {\n return crawlInternal(node, {\n hasCall: false,\n hasFunction: false,\n hasHelper: false,\n });\n}\n\n/**\n * Test if a node is or has a helper.\n */\n\nfunction isHelper(node: t.Node): boolean {\n if (!node) return false;\n\n if (isMemberExpression(node)) {\n return isHelper(node.object) || isHelper(node.property);\n } else if (isIdentifier(node)) {\n return (\n node.name === \"require\" ||\n node.name.charCodeAt(0) === charCodes.underscore\n );\n } else if (isCallExpression(node)) {\n return isHelper(node.callee);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n return (\n (isIdentifier(node.left) && isHelper(node.left)) || isHelper(node.right)\n );\n } else {\n return false;\n }\n}\n\nfunction isType(node: t.Node) {\n return (\n isLiteral(node) ||\n isObjectExpression(node) ||\n isArrayExpression(node) ||\n isIdentifier(node) ||\n isMemberExpression(node)\n );\n}\n\n/**\n * Tests for node types that need whitespace.\n */\n\nexport const nodes: NodeHandlers = {\n /**\n * Test if AssignmentExpression needs whitespace.\n */\n\n AssignmentExpression(node: t.AssignmentExpression): WhitespaceFlag {\n const state = crawl(node.right);\n if ((state.hasCall && state.hasHelper) || state.hasFunction) {\n return state.hasFunction\n ? WhitespaceFlag.before | WhitespaceFlag.after\n : WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if SwitchCase needs whitespace.\n */\n\n SwitchCase(node: t.SwitchCase, parent: t.SwitchStatement): WhitespaceFlag {\n return (\n (!!node.consequent.length || parent.cases[0] === node\n ? WhitespaceFlag.before\n : 0) |\n (!node.consequent.length && parent.cases[parent.cases.length - 1] === node\n ? WhitespaceFlag.after\n : 0)\n );\n },\n\n /**\n * Test if LogicalExpression needs whitespace.\n */\n\n LogicalExpression(node: t.LogicalExpression): WhitespaceFlag {\n if (isFunction(node.left) || isFunction(node.right)) {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if Literal needs whitespace.\n */\n\n Literal(node: t.Literal): WhitespaceFlag {\n if (isStringLiteral(node) && node.value === \"use strict\") {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if CallExpressionish needs whitespace.\n */\n\n CallExpression(node: t.CallExpression): WhitespaceFlag {\n if (isFunction(node.callee) || isHelper(node)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n OptionalCallExpression(node: t.OptionalCallExpression): WhitespaceFlag {\n if (isFunction(node.callee)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if VariableDeclaration needs whitespace.\n */\n\n VariableDeclaration(node: t.VariableDeclaration): WhitespaceFlag {\n for (let i = 0; i < node.declarations.length; i++) {\n const declar = node.declarations[i];\n\n let enabled = isHelper(declar.id) && !isType(declar.init);\n if (!enabled && declar.init) {\n const state = crawl(declar.init);\n enabled = (isHelper(declar.init) && state.hasCall) || state.hasFunction;\n }\n\n if (enabled) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n }\n },\n\n /**\n * Test if IfStatement needs whitespace.\n */\n\n IfStatement(node: t.IfStatement): WhitespaceFlag {\n if (isBlockStatement(node.consequent)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n};\n\n/**\n * Test if Property needs whitespace.\n */\n\nnodes.ObjectProperty =\n nodes.ObjectTypeProperty =\n nodes.ObjectMethod =\n function (\n node: t.ObjectProperty | t.ObjectTypeProperty | t.ObjectMethod,\n parent: t.ObjectExpression,\n ): WhitespaceFlag {\n if (parent.properties[0] === node) {\n return WhitespaceFlag.before;\n }\n };\n\nnodes.ObjectTypeCallProperty = function (\n node: t.ObjectTypeCallProperty,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (parent.callProperties[0] === node && !parent.properties?.length) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeIndexer = function (\n node: t.ObjectTypeIndexer,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.indexers[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeInternalSlot = function (\n node: t.ObjectTypeInternalSlot,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.internalSlots[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length &&\n !parent.indexers?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\n/**\n * Add whitespace tests for nodes and their aliases.\n */\n\n(\n [\n [\"Function\", true],\n [\"Class\", true],\n [\"Loop\", true],\n [\"LabeledStatement\", true],\n [\"SwitchStatement\", true],\n [\"TryStatement\", true],\n ] as const\n).forEach(function ([type, amounts]) {\n [type as string]\n .concat(FLIPPED_ALIAS_KEYS[type] || [])\n .forEach(function (type) {\n const ret = amounts ? WhitespaceFlag.before | WhitespaceFlag.after : 0;\n nodes[type] = () => ret;\n });\n});\n"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/printer.js b/node_modules/@babel/generator/lib/printer.js new file mode 100755 index 0000000..4228369 --- /dev/null +++ b/node_modules/@babel/generator/lib/printer.js @@ -0,0 +1,665 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _buffer = require("./buffer"); +var n = require("./node"); +var _t = require("@babel/types"); +var generatorFunctions = require("./generators"); +const { + isFunction, + isStatement, + isClassBody, + isTSInterfaceBody, + isTSEnumDeclaration +} = _t; +const SCIENTIFIC_NOTATION = /e/i; +const ZERO_DECIMAL_INTEGER = /\.0+$/; +const NON_DECIMAL_LITERAL = /^0[box]/; +const PURE_ANNOTATION_RE = /^\s*[@#]__PURE__\s*$/; +const HAS_NEWLINE = /[\n\r\u2028\u2029]/; +const HAS_BlOCK_COMMENT_END = /\*\//; +const { + needsParens +} = n; +class Printer { + constructor(format, map) { + this.inForStatementInitCounter = 0; + this._printStack = []; + this._indent = 0; + this._indentChar = 0; + this._indentRepeat = 0; + this._insideAux = false; + this._parenPushNewlineState = null; + this._noLineTerminator = false; + this._printAuxAfterOnNextUserNode = false; + this._printedComments = new Set(); + this._endsWithInteger = false; + this._endsWithWord = false; + this._lastCommentLine = 0; + this._endsWithInnerRaw = false; + this._indentInnerComments = true; + this.format = format; + this._buf = new _buffer.default(map); + this._indentChar = format.indent.style.charCodeAt(0); + this._indentRepeat = format.indent.style.length; + } + generate(ast) { + this.print(ast); + this._maybeAddAuxComment(); + return this._buf.get(); + } + + indent() { + if (this.format.compact || this.format.concise) return; + this._indent++; + } + + dedent() { + if (this.format.compact || this.format.concise) return; + this._indent--; + } + + semicolon(force = false) { + this._maybeAddAuxComment(); + if (force) { + this._appendChar(59); + } else { + this._queue(59); + } + this._noLineTerminator = false; + } + + rightBrace() { + if (this.format.minified) { + this._buf.removeLastSemicolon(); + } + this.tokenChar(125); + } + + space(force = false) { + if (this.format.compact) return; + if (force) { + this._space(); + } else if (this._buf.hasContent()) { + const lastCp = this.getLastChar(); + if (lastCp !== 32 && lastCp !== 10) { + this._space(); + } + } + } + + word(str, noLineTerminatorAfter = false) { + this._maybePrintInnerComments(); + + if (this._endsWithWord || str.charCodeAt(0) === 47 && this.endsWith(47)) { + this._space(); + } + this._maybeAddAuxComment(); + this._append(str, false); + this._endsWithWord = true; + this._noLineTerminator = noLineTerminatorAfter; + } + + number(str) { + this.word(str); + + this._endsWithInteger = Number.isInteger(+str) && !NON_DECIMAL_LITERAL.test(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && str.charCodeAt(str.length - 1) !== 46; + } + + token(str, maybeNewline = false) { + this._maybePrintInnerComments(); + + const lastChar = this.getLastChar(); + const strFirst = str.charCodeAt(0); + if (lastChar === 33 && str === "--" || + strFirst === 43 && lastChar === 43 || strFirst === 45 && lastChar === 45 || + strFirst === 46 && this._endsWithInteger) { + this._space(); + } + this._maybeAddAuxComment(); + this._append(str, maybeNewline); + this._noLineTerminator = false; + } + tokenChar(char) { + this._maybePrintInnerComments(); + + const lastChar = this.getLastChar(); + if ( + char === 43 && lastChar === 43 || char === 45 && lastChar === 45 || + char === 46 && this._endsWithInteger) { + this._space(); + } + this._maybeAddAuxComment(); + this._appendChar(char); + this._noLineTerminator = false; + } + + newline(i = 1, force) { + if (i <= 0) return; + if (!force) { + if (this.format.retainLines || this.format.compact) return; + if (this.format.concise) { + this.space(); + return; + } + } + if (i > 2) i = 2; + + i -= this._buf.getNewlineCount(); + for (let j = 0; j < i; j++) { + this._newline(); + } + return; + } + endsWith(char) { + return this.getLastChar() === char; + } + getLastChar() { + return this._buf.getLastChar(); + } + endsWithCharAndNewline() { + return this._buf.endsWithCharAndNewline(); + } + removeTrailingNewline() { + this._buf.removeTrailingNewline(); + } + exactSource(loc, cb) { + if (!loc) return cb(); + this._catchUp("start", loc); + this._buf.exactSource(loc, cb); + } + source(prop, loc) { + if (!loc) return; + this._catchUp(prop, loc); + this._buf.source(prop, loc); + } + sourceWithOffset(prop, loc, lineOffset, columnOffset) { + if (!loc) return; + this._catchUp(prop, loc); + this._buf.sourceWithOffset(prop, loc, lineOffset, columnOffset); + } + withSource(prop, loc, cb) { + if (!loc) return cb(); + this._catchUp(prop, loc); + this._buf.withSource(prop, loc, cb); + } + _space() { + this._queue(32); + } + _newline() { + this._queue(10); + } + _append(str, maybeNewline) { + this._maybeAddParen(str); + this._maybeIndent(str.charCodeAt(0)); + this._buf.append(str, maybeNewline); + this._endsWithWord = false; + this._endsWithInteger = false; + } + _appendChar(char) { + this._maybeAddParenChar(char); + this._maybeIndent(char); + this._buf.appendChar(char); + this._endsWithWord = false; + this._endsWithInteger = false; + } + _queue(char) { + this._maybeAddParenChar(char); + this._maybeIndent(char); + this._buf.queue(char); + this._endsWithWord = false; + this._endsWithInteger = false; + } + _maybeIndent(firstChar) { + if (this._indent && firstChar !== 10 && this.endsWith(10)) { + this._buf.queueIndentation(this._indentChar, this._getIndent()); + } + } + _shouldIndent(firstChar) { + if (this._indent && firstChar !== 10 && this.endsWith(10)) { + return true; + } + } + _maybeAddParenChar(char) { + const parenPushNewlineState = this._parenPushNewlineState; + if (!parenPushNewlineState) return; + + if (char === 32) { + return; + } + + if (char !== 10) { + this._parenPushNewlineState = null; + return; + } + this.tokenChar(40); + this.indent(); + parenPushNewlineState.printed = true; + } + _maybeAddParen(str) { + const parenPushNewlineState = this._parenPushNewlineState; + if (!parenPushNewlineState) return; + + const len = str.length; + let i; + for (i = 0; i < len && str.charCodeAt(i) === 32; i++) continue; + if (i === len) { + return; + } + + const cha = str.charCodeAt(i); + if (cha !== 10) { + if ( + cha !== 47 || + i + 1 === len) { + this._parenPushNewlineState = null; + return; + } + const chaPost = str.charCodeAt(i + 1); + if (chaPost === 42) { + + if (PURE_ANNOTATION_RE.test(str.slice(i + 2, len - 2))) { + return; + } + + } else if (chaPost !== 47) { + this._parenPushNewlineState = null; + return; + } + } + this.tokenChar(40); + this.indent(); + parenPushNewlineState.printed = true; + } + catchUp(line) { + if (!this.format.retainLines) return; + + const count = line - this._buf.getCurrentLine(); + for (let i = 0; i < count; i++) { + this._newline(); + } + } + _catchUp(prop, loc) { + if (!this.format.retainLines) return; + + const pos = loc ? loc[prop] : null; + if ((pos == null ? void 0 : pos.line) != null) { + const count = pos.line - this._buf.getCurrentLine(); + for (let i = 0; i < count; i++) { + this._newline(); + } + } + } + + _getIndent() { + return this._indentRepeat * this._indent; + } + printTerminatorless(node, parent, isLabel) { + if (isLabel) { + this._noLineTerminator = true; + this.print(node, parent); + } else { + const terminatorState = { + printed: false + }; + this._parenPushNewlineState = terminatorState; + this.print(node, parent); + if (terminatorState.printed) { + this.dedent(); + this.newline(); + this.tokenChar(41); + } + } + } + print(node, parent, noLineTerminatorAfter, + trailingCommentsLineOffset, forceParens) { + if (!node) return; + this._endsWithInnerRaw = false; + const nodeType = node.type; + const format = this.format; + const oldConcise = format.concise; + if ( + node._compact) { + format.concise = true; + } + const printMethod = this[nodeType]; + if (printMethod === undefined) { + throw new ReferenceError(`unknown node of type ${JSON.stringify(nodeType)} with constructor ${JSON.stringify(node.constructor.name)}`); + } + this._printStack.push(node); + const oldInAux = this._insideAux; + this._insideAux = node.loc == undefined; + this._maybeAddAuxComment(this._insideAux && !oldInAux); + let shouldPrintParens = false; + if (forceParens) { + shouldPrintParens = true; + } else if (format.retainFunctionParens && nodeType === "FunctionExpression" && node.extra && node.extra.parenthesized) { + shouldPrintParens = true; + } else { + shouldPrintParens = needsParens(node, parent, this._printStack); + } + if (shouldPrintParens) { + this.tokenChar(40); + this._endsWithInnerRaw = false; + } + this._lastCommentLine = 0; + this._printLeadingComments(node, parent); + const loc = nodeType === "Program" || nodeType === "File" ? null : node.loc; + this.exactSource(loc, printMethod.bind(this, node, parent)); + if (shouldPrintParens) { + this._printTrailingComments(node, parent); + this.tokenChar(41); + this._noLineTerminator = noLineTerminatorAfter; + } else if (noLineTerminatorAfter && !this._noLineTerminator) { + this._noLineTerminator = true; + this._printTrailingComments(node, parent); + } else { + this._printTrailingComments(node, parent, trailingCommentsLineOffset); + } + + this._printStack.pop(); + format.concise = oldConcise; + this._insideAux = oldInAux; + this._endsWithInnerRaw = false; + } + _maybeAddAuxComment(enteredPositionlessNode) { + if (enteredPositionlessNode) this._printAuxBeforeComment(); + if (!this._insideAux) this._printAuxAfterComment(); + } + _printAuxBeforeComment() { + if (this._printAuxAfterOnNextUserNode) return; + this._printAuxAfterOnNextUserNode = true; + const comment = this.format.auxiliaryCommentBefore; + if (comment) { + this._printComment({ + type: "CommentBlock", + value: comment + }, 0); + } + } + _printAuxAfterComment() { + if (!this._printAuxAfterOnNextUserNode) return; + this._printAuxAfterOnNextUserNode = false; + const comment = this.format.auxiliaryCommentAfter; + if (comment) { + this._printComment({ + type: "CommentBlock", + value: comment + }, 0); + } + } + getPossibleRaw(node) { + const extra = node.extra; + if (extra && extra.raw != null && extra.rawValue != null && node.value === extra.rawValue) { + return extra.raw; + } + } + printJoin(nodes, parent, opts = {}) { + if (!(nodes != null && nodes.length)) return; + if (opts.indent) this.indent(); + const newlineOpts = { + addNewlines: opts.addNewlines, + nextNodeStartLine: 0 + }; + const separator = opts.separator ? opts.separator.bind(this) : null; + const len = nodes.length; + for (let i = 0; i < len; i++) { + const node = nodes[i]; + if (!node) continue; + if (opts.statement) this._printNewline(i === 0, newlineOpts); + this.print(node, parent, undefined, opts.trailingCommentsLineOffset || 0); + opts.iterator == null ? void 0 : opts.iterator(node, i); + if (i < len - 1) separator == null ? void 0 : separator(); + if (opts.statement) { + if (i + 1 === len) { + this.newline(1); + } else { + var _nextNode$loc; + const nextNode = nodes[i + 1]; + newlineOpts.nextNodeStartLine = ((_nextNode$loc = nextNode.loc) == null ? void 0 : _nextNode$loc.start.line) || 0; + this._printNewline(true, newlineOpts); + } + } + } + if (opts.indent) this.dedent(); + } + printAndIndentOnComments(node, parent) { + const indent = node.leadingComments && node.leadingComments.length > 0; + if (indent) this.indent(); + this.print(node, parent); + if (indent) this.dedent(); + } + printBlock(parent) { + const node = parent.body; + if (node.type !== "EmptyStatement") { + this.space(); + } + this.print(node, parent); + } + _printTrailingComments(node, parent, lineOffset) { + const { + innerComments, + trailingComments + } = node; + if (innerComments != null && innerComments.length) { + this._printComments(2, innerComments, node, parent, lineOffset); + } + if (trailingComments != null && trailingComments.length) { + this._printComments(2, trailingComments, node, parent, lineOffset); + } + } + _printLeadingComments(node, parent) { + const comments = node.leadingComments; + if (!(comments != null && comments.length)) return; + this._printComments(0, comments, node, parent); + } + _maybePrintInnerComments() { + if (this._endsWithInnerRaw) this.printInnerComments(); + this._endsWithInnerRaw = true; + this._indentInnerComments = true; + } + printInnerComments() { + const node = this._printStack[this._printStack.length - 1]; + const comments = node.innerComments; + if (!(comments != null && comments.length)) return; + const hasSpace = this.endsWith(32); + const indent = this._indentInnerComments; + const printedCommentsCount = this._printedComments.size; + if (indent) this.indent(); + this._printComments(1, comments, node); + if (hasSpace && printedCommentsCount !== this._printedComments.size) { + this.space(); + } + if (indent) this.dedent(); + } + noIndentInnerCommentsHere() { + this._indentInnerComments = false; + } + printSequence(nodes, parent, opts = {}) { + opts.statement = true; + return this.printJoin(nodes, parent, opts); + } + printList(items, parent, opts = {}) { + if (opts.separator == null) { + opts.separator = commaSeparator; + } + return this.printJoin(items, parent, opts); + } + _printNewline(newLine, opts) { + if (this.format.retainLines || this.format.compact) return; + + if (this.format.concise) { + this.space(); + return; + } + if (!newLine) { + return; + } + const startLine = opts.nextNodeStartLine; + const lastCommentLine = this._lastCommentLine; + if (startLine > 0 && lastCommentLine > 0) { + const offset = startLine - lastCommentLine; + if (offset >= 0) { + this.newline(offset || 1); + return; + } + } + + if (this._buf.hasContent()) { + + this.newline(1); + } + } + + _shouldPrintComment(comment) { + if (comment.ignore) return 0; + if (this._printedComments.has(comment)) return 0; + if (this._noLineTerminator && (HAS_NEWLINE.test(comment.value) || HAS_BlOCK_COMMENT_END.test(comment.value))) { + return 2; + } + this._printedComments.add(comment); + if (!this.format.shouldPrintComment(comment.value)) { + return 0; + } + return 1; + } + _printComment(comment, skipNewLines) { + const noLineTerminator = this._noLineTerminator; + const isBlockComment = comment.type === "CommentBlock"; + + const printNewLines = isBlockComment && skipNewLines !== 1 && !this._noLineTerminator; + if (printNewLines && this._buf.hasContent() && skipNewLines !== 2) { + this.newline(1); + } + const lastCharCode = this.getLastChar(); + if (lastCharCode !== 91 && lastCharCode !== 123) { + this.space(); + } + let val; + if (isBlockComment) { + val = `/*${comment.value}*/`; + if (this.format.indent.adjustMultilineComment) { + var _comment$loc; + const offset = (_comment$loc = comment.loc) == null ? void 0 : _comment$loc.start.column; + if (offset) { + const newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g"); + val = val.replace(newlineRegex, "\n"); + } + let indentSize = this.format.retainLines ? 0 : this._buf.getCurrentColumn(); + if (this._shouldIndent(47) || this.format.retainLines) { + indentSize += this._getIndent(); + } + val = val.replace(/\n(?!$)/g, `\n${" ".repeat(indentSize)}`); + } + } else if (!noLineTerminator) { + val = `//${comment.value}`; + } else { + val = `/*${comment.value}*/`; + } + + if (this.endsWith(47)) this._space(); + this.source("start", comment.loc); + this._append(val, isBlockComment); + if (!isBlockComment && !noLineTerminator) { + this.newline(1, true); + } + if (printNewLines && skipNewLines !== 3) { + this.newline(1); + } + } + _printComments(type, comments, node, parent, lineOffset = 0) { + const nodeLoc = node.loc; + const len = comments.length; + let hasLoc = !!nodeLoc; + const nodeStartLine = hasLoc ? nodeLoc.start.line : 0; + const nodeEndLine = hasLoc ? nodeLoc.end.line : 0; + let lastLine = 0; + let leadingCommentNewline = 0; + const maybeNewline = this._noLineTerminator ? function () {} : this.newline.bind(this); + for (let i = 0; i < len; i++) { + const comment = comments[i]; + const shouldPrint = this._shouldPrintComment(comment); + if (shouldPrint === 2) { + hasLoc = false; + break; + } + if (hasLoc && comment.loc && shouldPrint === 1) { + const commentStartLine = comment.loc.start.line; + const commentEndLine = comment.loc.end.line; + if (type === 0) { + let offset = 0; + if (i === 0) { + if (this._buf.hasContent() && (comment.type === "CommentLine" || commentStartLine != commentEndLine)) { + offset = leadingCommentNewline = 1; + } + } else { + offset = commentStartLine - lastLine; + } + lastLine = commentEndLine; + maybeNewline(offset); + this._printComment(comment, 1); + if (i + 1 === len) { + maybeNewline(Math.max(nodeStartLine - lastLine, leadingCommentNewline)); + lastLine = nodeStartLine; + } + } else if (type === 1) { + const offset = commentStartLine - (i === 0 ? nodeStartLine : lastLine); + lastLine = commentEndLine; + maybeNewline(offset); + this._printComment(comment, 1); + if (i + 1 === len) { + maybeNewline(Math.min(1, nodeEndLine - lastLine)); + lastLine = nodeEndLine; + } + } else { + const offset = commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine); + lastLine = commentEndLine; + maybeNewline(offset); + this._printComment(comment, 1); + } + } else { + hasLoc = false; + if (shouldPrint !== 1) { + continue; + } + if (len === 1) { + const singleLine = comment.loc ? comment.loc.start.line === comment.loc.end.line : !HAS_NEWLINE.test(comment.value); + const shouldSkipNewline = singleLine && !isStatement(node) && !isClassBody(parent) && !isTSInterfaceBody(parent) && !isTSEnumDeclaration(parent); + if (type === 0) { + this._printComment(comment, shouldSkipNewline && node.type !== "ObjectExpression" || singleLine && isFunction(parent, { + body: node + }) ? 1 : 0); + } else if (shouldSkipNewline && type === 2) { + this._printComment(comment, 1); + } else { + this._printComment(comment, 0); + } + } else if (type === 1 && !(node.type === "ObjectExpression" && node.properties.length > 1) && node.type !== "ClassBody" && node.type !== "TSInterfaceBody") { + + this._printComment(comment, i === 0 ? 2 : i === len - 1 ? 3 : 0); + } else { + this._printComment(comment, 0); + } + } + } + if (type === 2 && hasLoc && lastLine) { + this._lastCommentLine = lastLine; + } + } +} + +Object.assign(Printer.prototype, generatorFunctions); +{ + Printer.prototype.Noop = function Noop() {}; +} +var _default = Printer; +exports.default = _default; +function commaSeparator() { + this.tokenChar(44); + this.space(); +} + +//# sourceMappingURL=printer.js.map diff --git a/node_modules/@babel/generator/lib/printer.js.map b/node_modules/@babel/generator/lib/printer.js.map new file mode 100755 index 0000000..b11be96 --- /dev/null +++ b/node_modules/@babel/generator/lib/printer.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isFunction","isStatement","isClassBody","isTSInterfaceBody","isTSEnumDeclaration","SCIENTIFIC_NOTATION","ZERO_DECIMAL_INTEGER","NON_DECIMAL_LITERAL","PURE_ANNOTATION_RE","HAS_NEWLINE","HAS_BlOCK_COMMENT_END","needsParens","n","Printer","constructor","format","map","inForStatementInitCounter","_printStack","_indent","_indentChar","_indentRepeat","_insideAux","_parenPushNewlineState","_noLineTerminator","_printAuxAfterOnNextUserNode","_printedComments","Set","_endsWithInteger","_endsWithWord","_lastCommentLine","_endsWithInnerRaw","_indentInnerComments","_buf","Buffer","indent","style","charCodeAt","length","generate","ast","print","_maybeAddAuxComment","get","compact","concise","dedent","semicolon","force","_appendChar","_queue","rightBrace","minified","removeLastSemicolon","token","space","_space","hasContent","lastCp","getLastChar","word","str","noLineTerminatorAfter","_maybePrintInnerComments","endsWith","_append","number","Number","isInteger","test","maybeNewline","lastChar","strFirst","tokenChar","char","newline","i","retainLines","getNewlineCount","j","_newline","endsWithCharAndNewline","removeTrailingNewline","exactSource","loc","cb","_catchUp","source","prop","sourceWithOffset","lineOffset","columnOffset","withSource","_maybeAddParen","_maybeIndent","append","_maybeAddParenChar","appendChar","queue","firstChar","queueIndentation","_getIndent","_shouldIndent","parenPushNewlineState","printed","len","cha","chaPost","slice","catchUp","line","count","getCurrentLine","pos","printTerminatorless","node","parent","isLabel","terminatorState","trailingCommentsLineOffset","forceParens","nodeType","type","oldConcise","_compact","printMethod","undefined","ReferenceError","JSON","stringify","name","push","oldInAux","shouldPrintParens","retainFunctionParens","extra","parenthesized","_printLeadingComments","bind","_printTrailingComments","pop","enteredPositionlessNode","_printAuxBeforeComment","_printAuxAfterComment","comment","auxiliaryCommentBefore","_printComment","value","auxiliaryCommentAfter","getPossibleRaw","raw","rawValue","printJoin","nodes","opts","newlineOpts","addNewlines","nextNodeStartLine","separator","statement","_printNewline","iterator","nextNode","start","printAndIndentOnComments","leadingComments","printBlock","body","innerComments","trailingComments","_printComments","comments","printInnerComments","hasSpace","printedCommentsCount","size","noIndentInnerCommentsHere","printSequence","printList","items","commaSeparator","newLine","startLine","lastCommentLine","offset","_shouldPrintComment","ignore","has","add","shouldPrintComment","skipNewLines","noLineTerminator","isBlockComment","printNewLines","lastCharCode","val","adjustMultilineComment","column","newlineRegex","RegExp","replace","indentSize","getCurrentColumn","repeat","nodeLoc","hasLoc","nodeStartLine","nodeEndLine","end","lastLine","leadingCommentNewline","shouldPrint","commentStartLine","commentEndLine","Math","max","min","singleLine","shouldSkipNewline","properties","Object","assign","prototype","generatorFunctions","Noop"],"sources":["../src/printer.ts"],"sourcesContent":["import Buffer from \"./buffer\";\nimport type { Loc } from \"./buffer\";\nimport * as n from \"./node\";\nimport type * as t from \"@babel/types\";\nimport {\n isFunction,\n isStatement,\n isClassBody,\n isTSInterfaceBody,\n isTSEnumDeclaration,\n} from \"@babel/types\";\nimport type {\n RecordAndTuplePluginOptions,\n PipelineOperatorPluginOptions,\n} from \"@babel/parser\";\nimport type { Opts as jsescOptions } from \"jsesc\";\n\nimport * as generatorFunctions from \"./generators\";\nimport type SourceMap from \"./source-map\";\nimport * as charCodes from \"charcodes\";\n\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst NON_DECIMAL_LITERAL = /^0[box]/;\nconst PURE_ANNOTATION_RE = /^\\s*[@#]__PURE__\\s*$/;\nconst HAS_NEWLINE = /[\\n\\r\\u2028\\u2029]/;\nconst HAS_BlOCK_COMMENT_END = /\\*\\//;\n\nconst { needsParens } = n;\n\nconst enum COMMENT_TYPE {\n LEADING,\n INNER,\n TRAILING,\n}\n\nconst enum COMMENT_SKIP_NEWLINE {\n DEFAULT,\n ALL,\n LEADING,\n TRAILING,\n}\n\nconst enum PRINT_COMMENT_HINT {\n SKIP,\n ALLOW,\n DEFER,\n}\n\nexport type Format = {\n shouldPrintComment: (comment: string) => boolean;\n retainLines: boolean;\n retainFunctionParens: boolean;\n comments: boolean;\n auxiliaryCommentBefore: string;\n auxiliaryCommentAfter: string;\n compact: boolean | \"auto\";\n minified: boolean;\n concise: boolean;\n indent: {\n adjustMultilineComment: boolean;\n style: string;\n };\n recordAndTupleSyntaxType: RecordAndTuplePluginOptions[\"syntaxType\"];\n jsescOption: jsescOptions;\n jsonCompatibleStrings?: boolean;\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: PipelineOperatorPluginOptions[\"topicToken\"];\n /**\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n};\n\ninterface AddNewlinesOptions {\n addNewlines(leading: boolean, node: t.Node): number;\n nextNodeStartLine: number;\n}\n\ninterface PrintSequenceOptions extends Partial {\n statement?: boolean;\n indent?: boolean;\n trailingCommentsLineOffset?: number;\n}\n\ninterface PrintListOptions {\n separator?: (this: Printer) => void;\n iterator?: (node: t.Node, index: number) => void;\n statement?: boolean;\n indent?: boolean;\n}\n\nexport type PrintJoinOptions = PrintListOptions & PrintSequenceOptions;\nclass Printer {\n constructor(format: Format, map: SourceMap) {\n this.format = format;\n this._buf = new Buffer(map);\n\n this._indentChar = format.indent.style.charCodeAt(0);\n this._indentRepeat = format.indent.style.length;\n }\n\n declare format: Format;\n inForStatementInitCounter: number = 0;\n\n declare _buf: Buffer;\n _printStack: Array = [];\n _indent: number = 0;\n _indentChar: number = 0;\n _indentRepeat: number = 0;\n _insideAux: boolean = false;\n _parenPushNewlineState: { printed: boolean } | null = null;\n _noLineTerminator: boolean = false;\n _printAuxAfterOnNextUserNode: boolean = false;\n _printedComments = new Set();\n _endsWithInteger = false;\n _endsWithWord = false;\n _lastCommentLine = 0;\n _endsWithInnerRaw: boolean = false;\n _indentInnerComments: boolean = true;\n\n generate(ast: t.Node) {\n this.print(ast);\n this._maybeAddAuxComment();\n\n return this._buf.get();\n }\n\n /**\n * Increment indent size.\n */\n\n indent(): void {\n if (this.format.compact || this.format.concise) return;\n\n this._indent++;\n }\n\n /**\n * Decrement indent size.\n */\n\n dedent(): void {\n if (this.format.compact || this.format.concise) return;\n\n this._indent--;\n }\n\n /**\n * Add a semicolon to the buffer.\n */\n\n semicolon(force: boolean = false): void {\n this._maybeAddAuxComment();\n if (force) {\n this._appendChar(charCodes.semicolon);\n } else {\n this._queue(charCodes.semicolon);\n }\n this._noLineTerminator = false;\n }\n\n /**\n * Add a right brace to the buffer.\n */\n\n rightBrace(): void {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.token(\"}\");\n }\n\n /**\n * Add a space to the buffer unless it is compact.\n */\n\n space(force: boolean = false): void {\n if (this.format.compact) return;\n\n if (force) {\n this._space();\n } else if (this._buf.hasContent()) {\n const lastCp = this.getLastChar();\n if (lastCp !== charCodes.space && lastCp !== charCodes.lineFeed) {\n this._space();\n }\n }\n }\n\n /**\n * Writes a token that can't be safely parsed without taking whitespace into account.\n */\n\n word(str: string, noLineTerminatorAfter: boolean = false): void {\n this._maybePrintInnerComments();\n\n // prevent concatenating words and creating // comment out of division and regex\n if (\n this._endsWithWord ||\n (str.charCodeAt(0) === charCodes.slash && this.endsWith(charCodes.slash))\n ) {\n this._space();\n }\n\n this._maybeAddAuxComment();\n this._append(str, false);\n\n this._endsWithWord = true;\n this._noLineTerminator = noLineTerminatorAfter;\n }\n\n /**\n * Writes a number token so that we can validate if it is an integer.\n */\n\n number(str: string): void {\n this.word(str);\n\n // Integer tokens need special handling because they cannot have '.'s inserted\n // immediately after them.\n this._endsWithInteger =\n Number.isInteger(+str) &&\n !NON_DECIMAL_LITERAL.test(str) &&\n !SCIENTIFIC_NOTATION.test(str) &&\n !ZERO_DECIMAL_INTEGER.test(str) &&\n str.charCodeAt(str.length - 1) !== charCodes.dot;\n }\n\n /**\n * Writes a simple token.\n */\n\n token(str: string, maybeNewline = false): void {\n this._maybePrintInnerComments();\n\n // space is mandatory to avoid outputting ` line comment\n const comment = this.skipLineComment(3);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n } else {\n break loop;\n }\n } else if (ch === charCodes.lessThan && !this.inModule) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.exclamationMark &&\n this.input.charCodeAt(pos + 2) === charCodes.dash &&\n this.input.charCodeAt(pos + 3) === charCodes.dash\n ) {\n // ` + +```js +const x = { + foo: { bar: 3 }, + array: [{ + does: 'work', + too: [ 1, 2, 3 ] + }] +} + +const y = { + foo: { baz: 4 }, + quux: 5, + array: [{ + does: 'work', + too: [ 4, 5, 6 ] + }, { + really: 'yes' + }] +} + +const output = { + foo: { + bar: 3, + baz: 4 + }, + array: [{ + does: 'work', + too: [ 1, 2, 3 ] + }, { + does: 'work', + too: [ 4, 5, 6 ] + }, { + really: 'yes' + }], + quux: 5 +} + +merge(x, y) // => output +``` + + +### Installation + +With [npm](http://npmjs.org) do: + +```sh +npm install deepmerge +``` + +deepmerge can be used directly in the browser without the use of package managers/bundlers as well: [UMD version from unpkg.com](https://unpkg.com/deepmerge/dist/umd.js). + + +### Include + +deepmerge exposes a CommonJS entry point: + +``` +const merge = require('deepmerge') +``` + +The ESM entry point was dropped due to a [Webpack bug](https://github.com/webpack/webpack/issues/6584). + +# API + + +## `merge(x, y, [options])` + +Merge two objects `x` and `y` deeply, returning a new merged object with the +elements from both `x` and `y`. + +If an element at the same key is present for both `x` and `y`, the value from +`y` will appear in the result. + +Merging creates a new object, so that neither `x` or `y` is modified. + +**Note:** By default, arrays are merged by concatenating them. + +## `merge.all(arrayOfObjects, [options])` + +Merges any number of objects into a single result object. + +```js +const foobar = { foo: { bar: 3 } } +const foobaz = { foo: { baz: 4 } } +const bar = { bar: 'yay!' } + +merge.all([ foobar, foobaz, bar ]) // => { foo: { bar: 3, baz: 4 }, bar: 'yay!' } +``` + + +## Options + +### `arrayMerge` + +There are multiple ways to merge two arrays, below are a few examples but you can also create your own custom function. + +Your `arrayMerge` function will be called with three arguments: a `target` array, the `source` array, and an `options` object with these properties: + +- `isMergeableObject(value)` +- `cloneUnlessOtherwiseSpecified(value, options)` + +#### `arrayMerge` example: overwrite target array + +Overwrites the existing array values completely rather than concatenating them: + +```js +const overwriteMerge = (destinationArray, sourceArray, options) => sourceArray + +merge( + [1, 2, 3], + [3, 2, 1], + { arrayMerge: overwriteMerge } +) // => [3, 2, 1] +``` + +#### `arrayMerge` example: combine arrays + +Combines objects at the same index in the two arrays. + +This was the default array merging algorithm pre-version-2.0.0. + +```js +const combineMerge = (target, source, options) => { + const destination = target.slice() + + source.forEach((item, index) => { + if (typeof destination[index] === 'undefined') { + destination[index] = options.cloneUnlessOtherwiseSpecified(item, options) + } else if (options.isMergeableObject(item)) { + destination[index] = merge(target[index], item, options) + } else if (target.indexOf(item) === -1) { + destination.push(item) + } + }) + return destination +} + +merge( + [{ a: true }], + [{ b: true }, 'ah yup'], + { arrayMerge: combineMerge } +) // => [{ a: true, b: true }, 'ah yup'] +``` + +### `isMergeableObject` + +By default, deepmerge clones every property from almost every kind of object. + +You may not want this, if your objects are of special types, and you want to copy the whole object instead of just copying its properties. + +You can accomplish this by passing in a function for the `isMergeableObject` option. + +If you only want to clone properties of plain objects, and ignore all "special" kinds of instantiated objects, you probably want to drop in [`is-plain-object`](https://github.com/jonschlinkert/is-plain-object). + +```js +const isPlainObject = require('is-plain-object') + +function SuperSpecial() { + this.special = 'oh yeah man totally' +} + +const instantiatedSpecialObject = new SuperSpecial() + +const target = { + someProperty: { + cool: 'oh for sure' + } +} + +const source = { + someProperty: instantiatedSpecialObject +} + +const defaultOutput = merge(target, source) + +defaultOutput.someProperty.cool // => 'oh for sure' +defaultOutput.someProperty.special // => 'oh yeah man totally' +defaultOutput.someProperty instanceof SuperSpecial // => false + +const customMergeOutput = merge(target, source, { + isMergeableObject: isPlainObject +}) + +customMergeOutput.someProperty.cool // => undefined +customMergeOutput.someProperty.special // => 'oh yeah man totally' +customMergeOutput.someProperty instanceof SuperSpecial // => true +``` + +### `customMerge` + +Specifies a function which can be used to override the default merge behavior for a property, based on the property name. + +The `customMerge` function will be passed the key for each property, and should return the function which should be used to merge the values for that property. + +It may also return undefined, in which case the default merge behaviour will be used. + +```js +const alex = { + name: { + first: 'Alex', + last: 'Alexson' + }, + pets: ['Cat', 'Parrot'] +} + +const tony = { + name: { + first: 'Tony', + last: 'Tonison' + }, + pets: ['Dog'] +} + +const mergeNames = (nameA, nameB) => `${nameA.first} and ${nameB.first}` + +const options = { + customMerge: (key) => { + if (key === 'name') { + return mergeNames + } + } +} + +const result = merge(alex, tony, options) + +result.name // => 'Alex and Tony' +result.pets // => ['Cat', 'Parrot', 'Dog'] +``` + + +### `clone` + +*Deprecated.* + +Defaults to `true`. + +If `clone` is `false` then child objects will be copied directly instead of being cloned. This was the default behavior before version 2.x. + + +# Testing + +With [npm](http://npmjs.org) do: + +```sh +npm test +``` + + +# License + +MIT diff --git a/node_modules/deepmerge/rollup.config.js b/node_modules/deepmerge/rollup.config.js new file mode 100755 index 0000000..8323ab2 --- /dev/null +++ b/node_modules/deepmerge/rollup.config.js @@ -0,0 +1,22 @@ +import resolve from 'rollup-plugin-node-resolve' +import commonjs from 'rollup-plugin-commonjs' +import pkg from './package.json' + +export default { + input: `index.js`, + plugins: [ + commonjs(), + resolve(), + ], + output: [ + { + file: pkg.main, + format: `cjs` + }, + { + name: 'deepmerge', + file: 'dist/umd.js', + format: `umd` + }, + ], +} diff --git a/node_modules/delayed-stream/.npmignore b/node_modules/delayed-stream/.npmignore old mode 100644 new mode 100755 diff --git a/node_modules/delayed-stream/License b/node_modules/delayed-stream/License old mode 100644 new mode 100755 diff --git a/node_modules/delayed-stream/Makefile b/node_modules/delayed-stream/Makefile old mode 100644 new mode 100755 diff --git a/node_modules/delayed-stream/Readme.md b/node_modules/delayed-stream/Readme.md old mode 100644 new mode 100755 diff --git a/node_modules/delayed-stream/lib/delayed_stream.js b/node_modules/delayed-stream/lib/delayed_stream.js old mode 100644 new mode 100755 diff --git a/node_modules/delayed-stream/package.json b/node_modules/delayed-stream/package.json old mode 100644 new mode 100755 diff --git a/node_modules/depd/History.md b/node_modules/depd/History.md old mode 100644 new mode 100755 diff --git a/node_modules/depd/LICENSE b/node_modules/depd/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/depd/Readme.md b/node_modules/depd/Readme.md old mode 100644 new mode 100755 diff --git a/node_modules/depd/index.js b/node_modules/depd/index.js old mode 100644 new mode 100755 diff --git a/node_modules/depd/lib/browser/index.js b/node_modules/depd/lib/browser/index.js old mode 100644 new mode 100755 diff --git a/node_modules/depd/package.json b/node_modules/depd/package.json old mode 100644 new mode 100755 diff --git a/node_modules/destroy/LICENSE b/node_modules/destroy/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/destroy/README.md b/node_modules/destroy/README.md old mode 100644 new mode 100755 diff --git a/node_modules/destroy/index.js b/node_modules/destroy/index.js old mode 100644 new mode 100755 diff --git a/node_modules/destroy/package.json b/node_modules/destroy/package.json old mode 100644 new mode 100755 diff --git a/node_modules/detect-newline/index.d.ts b/node_modules/detect-newline/index.d.ts new file mode 100755 index 0000000..1f32fd2 --- /dev/null +++ b/node_modules/detect-newline/index.d.ts @@ -0,0 +1,26 @@ +declare const detectNewline: { + /** + Detect the dominant newline character of a string. + + @returns The detected newline or `undefined` when no newline character is found. + + @example + ``` + import detectNewline = require('detect-newline'); + + detectNewline('foo\nbar\nbaz\r\n'); + //=> '\n' + ``` + */ + (string: string): '\r\n' | '\n' | undefined; + + /** + Detect the dominant newline character of a string. + + @returns The detected newline or `\n` when no newline character is found or the input is not a string. + */ + graceful(string: string): '\r\n' | '\n'; + graceful(string?: unknown): '\n'; +}; + +export = detectNewline; diff --git a/node_modules/detect-newline/index.js b/node_modules/detect-newline/index.js new file mode 100755 index 0000000..987ed87 --- /dev/null +++ b/node_modules/detect-newline/index.js @@ -0,0 +1,21 @@ +'use strict'; + +const detectNewline = string => { + if (typeof string !== 'string') { + throw new TypeError('Expected a string'); + } + + const newlines = string.match(/(?:\r?\n)/g) || []; + + if (newlines.length === 0) { + return; + } + + const crlf = newlines.filter(newline => newline === '\r\n').length; + const lf = newlines.length - crlf; + + return crlf > lf ? '\r\n' : '\n'; +}; + +module.exports = detectNewline; +module.exports.graceful = string => (typeof string === 'string' && detectNewline(string)) || '\n'; diff --git a/node_modules/detect-newline/license b/node_modules/detect-newline/license new file mode 100755 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/detect-newline/license @@ -0,0 +1,9 @@ +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/node_modules/detect-newline/package.json b/node_modules/detect-newline/package.json new file mode 100755 index 0000000..1adf246 --- /dev/null +++ b/node_modules/detect-newline/package.json @@ -0,0 +1,39 @@ +{ + "name": "detect-newline", + "version": "3.1.0", + "description": "Detect the dominant newline character of a string", + "license": "MIT", + "repository": "sindresorhus/detect-newline", + "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": [ + "newline", + "linebreak", + "line-break", + "line", + "lf", + "crlf", + "eol", + "linefeed", + "character", + "char" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/detect-newline/readme.md b/node_modules/detect-newline/readme.md new file mode 100755 index 0000000..eee16c2 --- /dev/null +++ b/node_modules/detect-newline/readme.md @@ -0,0 +1,42 @@ +# detect-newline [![Build Status](https://travis-ci.org/sindresorhus/detect-newline.svg?branch=master)](https://travis-ci.org/sindresorhus/detect-newline) + +> Detect the dominant newline character of a string + + +## Install + +``` +$ npm install detect-newline +``` + + +## Usage + +```js +const detectNewline = require('detect-newline'); + +detectNewline('foo\nbar\nbaz\r\n'); +//=> '\n' +``` + + +## API + +### detectNewline(string) + +Returns the detected newline or `undefined` when no newline character is found. + +### detectNewline.graceful(unknown) + +Returns the detected newline or `\n` when no newline character is found or the input is not a string. + + +## Related + +- [detect-newline-cli](https://github.com/sindresorhus/detect-newline-cli) - CLI for this module +- [detect-indent](https://github.com/sindresorhus/detect-indent) - Detect the indentation of code + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/diff-sequences/LICENSE b/node_modules/diff-sequences/LICENSE new file mode 100755 index 0000000..b96dcb0 --- /dev/null +++ b/node_modules/diff-sequences/LICENSE @@ -0,0 +1,21 @@ +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/node_modules/diff-sequences/README.md b/node_modules/diff-sequences/README.md new file mode 100755 index 0000000..fd5b99b --- /dev/null +++ b/node_modules/diff-sequences/README.md @@ -0,0 +1,404 @@ +# 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/node_modules/diff-sequences/build/index.d.ts b/node_modules/diff-sequences/build/index.d.ts new file mode 100755 index 0000000..5598ec9 --- /dev/null +++ b/node_modules/diff-sequences/build/index.d.ts @@ -0,0 +1,38 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +export declare type Callbacks = { + foundSubsequence: FoundSubsequence; + isCommon: IsCommon; +}; + +declare function diffSequence( + aLength: number, + bLength: number, + isCommon: IsCommon, + foundSubsequence: FoundSubsequence, +): void; +export default diffSequence; + +declare type FoundSubsequence = ( + nCommon: number, // caller can assume: 0 < nCommon + aCommon: number, // caller can assume: 0 <= aCommon && aCommon < aLength + bCommon: number, +) => void; + +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ +declare type IsCommon = ( + aIndex: number, // caller can assume: 0 <= aIndex && aIndex < aLength + bIndex: number, +) => boolean; + +export {}; diff --git a/node_modules/diff-sequences/build/index.js b/node_modules/diff-sequences/build/index.js new file mode 100755 index 0000000..eb642fb --- /dev/null +++ b/node_modules/diff-sequences/build/index.js @@ -0,0 +1,802 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +exports.default = diffSequence; +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + +// This diff-sequences package implements the linear space variation in +// An O(ND) Difference Algorithm and Its Variations by Eugene W. Myers + +// Relationship in notation between Myers paper and this package: +// A is a +// N is aLength, aEnd - aStart, and so on +// x is aIndex, aFirst, aLast, and so on +// B is b +// M is bLength, bEnd - bStart, and so on +// y is bIndex, bFirst, bLast, and so on +// Δ = N - M is negative of baDeltaLength = bLength - aLength +// D is d +// k is kF +// k + Δ is kF = kR - baDeltaLength +// V is aIndexesF or aIndexesR (see comment below about Indexes type) +// index intervals [1, N] and [1, M] are [0, aLength) and [0, bLength) +// starting point in forward direction (0, 0) is (-1, -1) +// starting point in reverse direction (N + 1, M + 1) is (aLength, bLength) + +// The “edit graph” for sequences a and b corresponds to items: +// in a on the horizontal axis +// in b on the vertical axis +// +// Given a-coordinate of a point in a diagonal, you can compute b-coordinate. +// +// Forward diagonals kF: +// zero diagonal intersects top left corner +// positive diagonals intersect top edge +// negative diagonals insersect left edge +// +// Reverse diagonals kR: +// zero diagonal intersects bottom right corner +// positive diagonals intersect right edge +// negative diagonals intersect bottom edge + +// The graph contains a directed acyclic graph of edges: +// horizontal: delete an item from a +// vertical: insert an item from b +// diagonal: common item in a and b +// +// The algorithm solves dual problems in the graph analogy: +// Find longest common subsequence: path with maximum number of diagonal edges +// Find shortest edit script: path with minimum number of non-diagonal edges + +// Input callback function compares items at indexes in the sequences. + +// Output callback function receives the number of adjacent items +// and starting indexes of each common subsequence. + +// Either original functions or wrapped to swap indexes if graph is transposed. + +// Indexes in sequence a of last point of forward or reverse paths in graph. +// Myers algorithm indexes by diagonal k which for negative is bad deopt in V8. +// This package indexes by iF and iR which are greater than or equal to zero. +// and also updates the index arrays in place to cut memory in half. +// kF = 2 * iF - d +// kR = d - 2 * iR + +// Division of index intervals in sequences a and b at the middle change. +// Invariant: intervals do not have common items at the start or end. + +const pkg = 'diff-sequences'; // for error messages +const NOT_YET_SET = 0; // small int instead of undefined to avoid deopt in V8 + +// Return the number of common items that follow in forward direction. +// The length of what Myers paper calls a “snake” in a forward path. +const countCommonItemsF = (aIndex, aEnd, bIndex, bEnd, isCommon) => { + let nCommon = 0; + while (aIndex < aEnd && bIndex < bEnd && isCommon(aIndex, bIndex)) { + aIndex += 1; + bIndex += 1; + nCommon += 1; + } + return nCommon; +}; + +// Return the number of common items that precede in reverse direction. +// The length of what Myers paper calls a “snake” in a reverse path. +const countCommonItemsR = (aStart, aIndex, bStart, bIndex, isCommon) => { + let nCommon = 0; + while (aStart <= aIndex && bStart <= bIndex && isCommon(aIndex, bIndex)) { + aIndex -= 1; + bIndex -= 1; + nCommon += 1; + } + return nCommon; +}; + +// A simple function to extend forward paths from (d - 1) to d changes +// when forward and reverse paths cannot yet overlap. +const extendPathsF = ( + d, + aEnd, + bEnd, + bF, + isCommon, + aIndexesF, + iMaxF // return the value because optimization might decrease it +) => { + // Unroll the first iteration. + let iF = 0; + let kF = -d; // kF = 2 * iF - d + let aFirst = aIndexesF[iF]; // in first iteration always insert + let aIndexPrev1 = aFirst; // prev value of [iF - 1] in next iteration + aIndexesF[iF] += countCommonItemsF( + aFirst + 1, + aEnd, + bF + aFirst - kF + 1, + bEnd, + isCommon + ); + + // Optimization: skip diagonals in which paths cannot ever overlap. + const nF = d < iMaxF ? d : iMaxF; + + // The diagonals kF are odd when d is odd and even when d is even. + for (iF += 1, kF += 2; iF <= nF; iF += 1, kF += 2) { + // To get first point of path segment, move one change in forward direction + // from last point of previous path segment in an adjacent diagonal. + // In last possible iteration when iF === d and kF === d always delete. + if (iF !== d && aIndexPrev1 < aIndexesF[iF]) { + aFirst = aIndexesF[iF]; // vertical to insert from b + } else { + aFirst = aIndexPrev1 + 1; // horizontal to delete from a + + if (aEnd <= aFirst) { + // Optimization: delete moved past right of graph. + return iF - 1; + } + } + + // To get last point of path segment, move along diagonal of common items. + aIndexPrev1 = aIndexesF[iF]; + aIndexesF[iF] = + aFirst + + countCommonItemsF(aFirst + 1, aEnd, bF + aFirst - kF + 1, bEnd, isCommon); + } + return iMaxF; +}; + +// A simple function to extend reverse paths from (d - 1) to d changes +// when reverse and forward paths cannot yet overlap. +const extendPathsR = ( + d, + aStart, + bStart, + bR, + isCommon, + aIndexesR, + iMaxR // return the value because optimization might decrease it +) => { + // Unroll the first iteration. + let iR = 0; + let kR = d; // kR = d - 2 * iR + let aFirst = aIndexesR[iR]; // in first iteration always insert + let aIndexPrev1 = aFirst; // prev value of [iR - 1] in next iteration + aIndexesR[iR] -= countCommonItemsR( + aStart, + aFirst - 1, + bStart, + bR + aFirst - kR - 1, + isCommon + ); + + // Optimization: skip diagonals in which paths cannot ever overlap. + const nR = d < iMaxR ? d : iMaxR; + + // The diagonals kR are odd when d is odd and even when d is even. + for (iR += 1, kR -= 2; iR <= nR; iR += 1, kR -= 2) { + // To get first point of path segment, move one change in reverse direction + // from last point of previous path segment in an adjacent diagonal. + // In last possible iteration when iR === d and kR === -d always delete. + if (iR !== d && aIndexesR[iR] < aIndexPrev1) { + aFirst = aIndexesR[iR]; // vertical to insert from b + } else { + aFirst = aIndexPrev1 - 1; // horizontal to delete from a + + if (aFirst < aStart) { + // Optimization: delete moved past left of graph. + return iR - 1; + } + } + + // To get last point of path segment, move along diagonal of common items. + aIndexPrev1 = aIndexesR[iR]; + aIndexesR[iR] = + aFirst - + countCommonItemsR( + aStart, + aFirst - 1, + bStart, + bR + aFirst - kR - 1, + isCommon + ); + } + return iMaxR; +}; + +// A complete function to extend forward paths from (d - 1) to d changes. +// Return true if a path overlaps reverse path of (d - 1) changes in its diagonal. +const extendOverlappablePathsF = ( + d, + aStart, + aEnd, + bStart, + bEnd, + isCommon, + aIndexesF, + iMaxF, + aIndexesR, + iMaxR, + division // update prop values if return true +) => { + const bF = bStart - aStart; // bIndex = bF + aIndex - kF + const aLength = aEnd - aStart; + const bLength = bEnd - bStart; + const baDeltaLength = bLength - aLength; // kF = kR - baDeltaLength + + // Range of diagonals in which forward and reverse paths might overlap. + const kMinOverlapF = -baDeltaLength - (d - 1); // -(d - 1) <= kR + const kMaxOverlapF = -baDeltaLength + (d - 1); // kR <= (d - 1) + + let aIndexPrev1 = NOT_YET_SET; // prev value of [iF - 1] in next iteration + + // Optimization: skip diagonals in which paths cannot ever overlap. + const nF = d < iMaxF ? d : iMaxF; + + // The diagonals kF = 2 * iF - d are odd when d is odd and even when d is even. + for (let iF = 0, kF = -d; iF <= nF; iF += 1, kF += 2) { + // To get first point of path segment, move one change in forward direction + // from last point of previous path segment in an adjacent diagonal. + // In first iteration when iF === 0 and kF === -d always insert. + // In last possible iteration when iF === d and kF === d always delete. + const insert = iF === 0 || (iF !== d && aIndexPrev1 < aIndexesF[iF]); + const aLastPrev = insert ? aIndexesF[iF] : aIndexPrev1; + const aFirst = insert + ? aLastPrev // vertical to insert from b + : aLastPrev + 1; // horizontal to delete from a + + // To get last point of path segment, move along diagonal of common items. + const bFirst = bF + aFirst - kF; + const nCommonF = countCommonItemsF( + aFirst + 1, + aEnd, + bFirst + 1, + bEnd, + isCommon + ); + const aLast = aFirst + nCommonF; + aIndexPrev1 = aIndexesF[iF]; + aIndexesF[iF] = aLast; + if (kMinOverlapF <= kF && kF <= kMaxOverlapF) { + // Solve for iR of reverse path with (d - 1) changes in diagonal kF: + // kR = kF + baDeltaLength + // kR = (d - 1) - 2 * iR + const iR = (d - 1 - (kF + baDeltaLength)) / 2; + + // If this forward path overlaps the reverse path in this diagonal, + // then this is the middle change of the index intervals. + if (iR <= iMaxR && aIndexesR[iR] - 1 <= aLast) { + // Unlike the Myers algorithm which finds only the middle “snake” + // this package can find two common subsequences per division. + // Last point of previous path segment is on an adjacent diagonal. + const bLastPrev = bF + aLastPrev - (insert ? kF + 1 : kF - 1); + + // Because of invariant that intervals preceding the middle change + // cannot have common items at the end, + // move in reverse direction along a diagonal of common items. + const nCommonR = countCommonItemsR( + aStart, + aLastPrev, + bStart, + bLastPrev, + isCommon + ); + const aIndexPrevFirst = aLastPrev - nCommonR; + const bIndexPrevFirst = bLastPrev - nCommonR; + const aEndPreceding = aIndexPrevFirst + 1; + const bEndPreceding = bIndexPrevFirst + 1; + division.nChangePreceding = d - 1; + if (d - 1 === aEndPreceding + bEndPreceding - aStart - bStart) { + // Optimization: number of preceding changes in forward direction + // is equal to number of items in preceding interval, + // therefore it cannot contain any common items. + division.aEndPreceding = aStart; + division.bEndPreceding = bStart; + } else { + division.aEndPreceding = aEndPreceding; + division.bEndPreceding = bEndPreceding; + } + division.nCommonPreceding = nCommonR; + if (nCommonR !== 0) { + division.aCommonPreceding = aEndPreceding; + division.bCommonPreceding = bEndPreceding; + } + division.nCommonFollowing = nCommonF; + if (nCommonF !== 0) { + division.aCommonFollowing = aFirst + 1; + division.bCommonFollowing = bFirst + 1; + } + const aStartFollowing = aLast + 1; + const bStartFollowing = bFirst + nCommonF + 1; + division.nChangeFollowing = d - 1; + if (d - 1 === aEnd + bEnd - aStartFollowing - bStartFollowing) { + // Optimization: number of changes in reverse direction + // is equal to number of items in following interval, + // therefore it cannot contain any common items. + division.aStartFollowing = aEnd; + division.bStartFollowing = bEnd; + } else { + division.aStartFollowing = aStartFollowing; + division.bStartFollowing = bStartFollowing; + } + return true; + } + } + } + return false; +}; + +// A complete function to extend reverse paths from (d - 1) to d changes. +// Return true if a path overlaps forward path of d changes in its diagonal. +const extendOverlappablePathsR = ( + d, + aStart, + aEnd, + bStart, + bEnd, + isCommon, + aIndexesF, + iMaxF, + aIndexesR, + iMaxR, + division // update prop values if return true +) => { + const bR = bEnd - aEnd; // bIndex = bR + aIndex - kR + const aLength = aEnd - aStart; + const bLength = bEnd - bStart; + const baDeltaLength = bLength - aLength; // kR = kF + baDeltaLength + + // Range of diagonals in which forward and reverse paths might overlap. + const kMinOverlapR = baDeltaLength - d; // -d <= kF + const kMaxOverlapR = baDeltaLength + d; // kF <= d + + let aIndexPrev1 = NOT_YET_SET; // prev value of [iR - 1] in next iteration + + // Optimization: skip diagonals in which paths cannot ever overlap. + const nR = d < iMaxR ? d : iMaxR; + + // The diagonals kR = d - 2 * iR are odd when d is odd and even when d is even. + for (let iR = 0, kR = d; iR <= nR; iR += 1, kR -= 2) { + // To get first point of path segment, move one change in reverse direction + // from last point of previous path segment in an adjacent diagonal. + // In first iteration when iR === 0 and kR === d always insert. + // In last possible iteration when iR === d and kR === -d always delete. + const insert = iR === 0 || (iR !== d && aIndexesR[iR] < aIndexPrev1); + const aLastPrev = insert ? aIndexesR[iR] : aIndexPrev1; + const aFirst = insert + ? aLastPrev // vertical to insert from b + : aLastPrev - 1; // horizontal to delete from a + + // To get last point of path segment, move along diagonal of common items. + const bFirst = bR + aFirst - kR; + const nCommonR = countCommonItemsR( + aStart, + aFirst - 1, + bStart, + bFirst - 1, + isCommon + ); + const aLast = aFirst - nCommonR; + aIndexPrev1 = aIndexesR[iR]; + aIndexesR[iR] = aLast; + if (kMinOverlapR <= kR && kR <= kMaxOverlapR) { + // Solve for iF of forward path with d changes in diagonal kR: + // kF = kR - baDeltaLength + // kF = 2 * iF - d + const iF = (d + (kR - baDeltaLength)) / 2; + + // If this reverse path overlaps the forward path in this diagonal, + // then this is a middle change of the index intervals. + if (iF <= iMaxF && aLast - 1 <= aIndexesF[iF]) { + const bLast = bFirst - nCommonR; + division.nChangePreceding = d; + if (d === aLast + bLast - aStart - bStart) { + // Optimization: number of changes in reverse direction + // is equal to number of items in preceding interval, + // therefore it cannot contain any common items. + division.aEndPreceding = aStart; + division.bEndPreceding = bStart; + } else { + division.aEndPreceding = aLast; + division.bEndPreceding = bLast; + } + division.nCommonPreceding = nCommonR; + if (nCommonR !== 0) { + // The last point of reverse path segment is start of common subsequence. + division.aCommonPreceding = aLast; + division.bCommonPreceding = bLast; + } + division.nChangeFollowing = d - 1; + if (d === 1) { + // There is no previous path segment. + division.nCommonFollowing = 0; + division.aStartFollowing = aEnd; + division.bStartFollowing = bEnd; + } else { + // Unlike the Myers algorithm which finds only the middle “snake” + // this package can find two common subsequences per division. + // Last point of previous path segment is on an adjacent diagonal. + const bLastPrev = bR + aLastPrev - (insert ? kR - 1 : kR + 1); + + // Because of invariant that intervals following the middle change + // cannot have common items at the start, + // move in forward direction along a diagonal of common items. + const nCommonF = countCommonItemsF( + aLastPrev, + aEnd, + bLastPrev, + bEnd, + isCommon + ); + division.nCommonFollowing = nCommonF; + if (nCommonF !== 0) { + // The last point of reverse path segment is start of common subsequence. + division.aCommonFollowing = aLastPrev; + division.bCommonFollowing = bLastPrev; + } + const aStartFollowing = aLastPrev + nCommonF; // aFirstPrev + const bStartFollowing = bLastPrev + nCommonF; // bFirstPrev + + if (d - 1 === aEnd + bEnd - aStartFollowing - bStartFollowing) { + // Optimization: number of changes in forward direction + // is equal to number of items in following interval, + // therefore it cannot contain any common items. + division.aStartFollowing = aEnd; + division.bStartFollowing = bEnd; + } else { + division.aStartFollowing = aStartFollowing; + division.bStartFollowing = bStartFollowing; + } + } + return true; + } + } + } + return false; +}; + +// Given index intervals and input function to compare items at indexes, +// divide at the middle change. +// +// DO NOT CALL if start === end, because interval cannot contain common items +// and because this function will throw the “no overlap” error. +const divide = ( + nChange, + aStart, + aEnd, + bStart, + bEnd, + isCommon, + aIndexesF, + aIndexesR, + division // output +) => { + const bF = bStart - aStart; // bIndex = bF + aIndex - kF + const bR = bEnd - aEnd; // bIndex = bR + aIndex - kR + const aLength = aEnd - aStart; + const bLength = bEnd - bStart; + + // Because graph has square or portrait orientation, + // length difference is minimum number of items to insert from b. + // Corresponding forward and reverse diagonals in graph + // depend on length difference of the sequences: + // kF = kR - baDeltaLength + // kR = kF + baDeltaLength + const baDeltaLength = bLength - aLength; + + // Optimization: max diagonal in graph intersects corner of shorter side. + let iMaxF = aLength; + let iMaxR = aLength; + + // Initialize no changes yet in forward or reverse direction: + aIndexesF[0] = aStart - 1; // at open start of interval, outside closed start + aIndexesR[0] = aEnd; // at open end of interval + + if (baDeltaLength % 2 === 0) { + // The number of changes in paths is 2 * d if length difference is even. + const dMin = (nChange || baDeltaLength) / 2; + const dMax = (aLength + bLength) / 2; + for (let d = 1; d <= dMax; d += 1) { + iMaxF = extendPathsF(d, aEnd, bEnd, bF, isCommon, aIndexesF, iMaxF); + if (d < dMin) { + iMaxR = extendPathsR(d, aStart, bStart, bR, isCommon, aIndexesR, iMaxR); + } else if ( + // If a reverse path overlaps a forward path in the same diagonal, + // return a division of the index intervals at the middle change. + extendOverlappablePathsR( + d, + aStart, + aEnd, + bStart, + bEnd, + isCommon, + aIndexesF, + iMaxF, + aIndexesR, + iMaxR, + division + ) + ) { + return; + } + } + } else { + // The number of changes in paths is 2 * d - 1 if length difference is odd. + const dMin = ((nChange || baDeltaLength) + 1) / 2; + const dMax = (aLength + bLength + 1) / 2; + + // Unroll first half iteration so loop extends the relevant pairs of paths. + // Because of invariant that intervals have no common items at start or end, + // and limitation not to call divide with empty intervals, + // therefore it cannot be called if a forward path with one change + // would overlap a reverse path with no changes, even if dMin === 1. + let d = 1; + iMaxF = extendPathsF(d, aEnd, bEnd, bF, isCommon, aIndexesF, iMaxF); + for (d += 1; d <= dMax; d += 1) { + iMaxR = extendPathsR( + d - 1, + aStart, + bStart, + bR, + isCommon, + aIndexesR, + iMaxR + ); + if (d < dMin) { + iMaxF = extendPathsF(d, aEnd, bEnd, bF, isCommon, aIndexesF, iMaxF); + } else if ( + // If a forward path overlaps a reverse path in the same diagonal, + // return a division of the index intervals at the middle change. + extendOverlappablePathsF( + d, + aStart, + aEnd, + bStart, + bEnd, + isCommon, + aIndexesF, + iMaxF, + aIndexesR, + iMaxR, + division + ) + ) { + return; + } + } + } + + /* istanbul ignore next */ + throw new Error( + `${pkg}: no overlap aStart=${aStart} aEnd=${aEnd} bStart=${bStart} bEnd=${bEnd}` + ); +}; + +// Given index intervals and input function to compare items at indexes, +// return by output function the number of adjacent items and starting indexes +// of each common subsequence. Divide and conquer with only linear space. +// +// The index intervals are half open [start, end) like array slice method. +// DO NOT CALL if start === end, because interval cannot contain common items +// and because divide function will throw the “no overlap” error. +const findSubsequences = ( + nChange, + aStart, + aEnd, + bStart, + bEnd, + transposed, + callbacks, + aIndexesF, + aIndexesR, + division // temporary memory, not input nor output +) => { + if (bEnd - bStart < aEnd - aStart) { + // Transpose graph so it has portrait instead of landscape orientation. + // Always compare shorter to longer sequence for consistency and optimization. + transposed = !transposed; + if (transposed && callbacks.length === 1) { + // Lazily wrap callback functions to swap args if graph is transposed. + const {foundSubsequence, isCommon} = callbacks[0]; + callbacks[1] = { + foundSubsequence: (nCommon, bCommon, aCommon) => { + foundSubsequence(nCommon, aCommon, bCommon); + }, + isCommon: (bIndex, aIndex) => isCommon(aIndex, bIndex) + }; + } + const tStart = aStart; + const tEnd = aEnd; + aStart = bStart; + aEnd = bEnd; + bStart = tStart; + bEnd = tEnd; + } + const {foundSubsequence, isCommon} = callbacks[transposed ? 1 : 0]; + + // Divide the index intervals at the middle change. + divide( + nChange, + aStart, + aEnd, + bStart, + bEnd, + isCommon, + aIndexesF, + aIndexesR, + division + ); + const { + nChangePreceding, + aEndPreceding, + bEndPreceding, + nCommonPreceding, + aCommonPreceding, + bCommonPreceding, + nCommonFollowing, + aCommonFollowing, + bCommonFollowing, + nChangeFollowing, + aStartFollowing, + bStartFollowing + } = division; + + // Unless either index interval is empty, they might contain common items. + if (aStart < aEndPreceding && bStart < bEndPreceding) { + // Recursely find and return common subsequences preceding the division. + findSubsequences( + nChangePreceding, + aStart, + aEndPreceding, + bStart, + bEndPreceding, + transposed, + callbacks, + aIndexesF, + aIndexesR, + division + ); + } + + // Return common subsequences that are adjacent to the middle change. + if (nCommonPreceding !== 0) { + foundSubsequence(nCommonPreceding, aCommonPreceding, bCommonPreceding); + } + if (nCommonFollowing !== 0) { + foundSubsequence(nCommonFollowing, aCommonFollowing, bCommonFollowing); + } + + // Unless either index interval is empty, they might contain common items. + if (aStartFollowing < aEnd && bStartFollowing < bEnd) { + // Recursely find and return common subsequences following the division. + findSubsequences( + nChangeFollowing, + aStartFollowing, + aEnd, + bStartFollowing, + bEnd, + transposed, + callbacks, + aIndexesF, + aIndexesR, + division + ); + } +}; +const validateLength = (name, arg) => { + if (typeof arg !== 'number') { + throw new TypeError(`${pkg}: ${name} typeof ${typeof arg} is not a number`); + } + if (!Number.isSafeInteger(arg)) { + throw new RangeError(`${pkg}: ${name} value ${arg} is not a safe integer`); + } + if (arg < 0) { + throw new RangeError(`${pkg}: ${name} value ${arg} is a negative integer`); + } +}; +const validateCallback = (name, arg) => { + const type = typeof arg; + if (type !== 'function') { + throw new TypeError(`${pkg}: ${name} typeof ${type} is not a function`); + } +}; + +// Compare items in two sequences to find a longest common subsequence. +// Given lengths of sequences and input function to compare items at indexes, +// return by output function the number of adjacent items and starting indexes +// of each common subsequence. +function diffSequence(aLength, bLength, isCommon, foundSubsequence) { + validateLength('aLength', aLength); + validateLength('bLength', bLength); + validateCallback('isCommon', isCommon); + validateCallback('foundSubsequence', foundSubsequence); + + // Count common items from the start in the forward direction. + const nCommonF = countCommonItemsF(0, aLength, 0, bLength, isCommon); + if (nCommonF !== 0) { + foundSubsequence(nCommonF, 0, 0); + } + + // Unless both sequences consist of common items only, + // find common items in the half-trimmed index intervals. + if (aLength !== nCommonF || bLength !== nCommonF) { + // Invariant: intervals do not have common items at the start. + // The start of an index interval is closed like array slice method. + const aStart = nCommonF; + const bStart = nCommonF; + + // Count common items from the end in the reverse direction. + const nCommonR = countCommonItemsR( + aStart, + aLength - 1, + bStart, + bLength - 1, + isCommon + ); + + // Invariant: intervals do not have common items at the end. + // The end of an index interval is open like array slice method. + const aEnd = aLength - nCommonR; + const bEnd = bLength - nCommonR; + + // Unless one sequence consists of common items only, + // therefore the other trimmed index interval consists of changes only, + // find common items in the trimmed index intervals. + const nCommonFR = nCommonF + nCommonR; + if (aLength !== nCommonFR && bLength !== nCommonFR) { + const nChange = 0; // number of change items is not yet known + const transposed = false; // call the original unwrapped functions + const callbacks = [ + { + foundSubsequence, + isCommon + } + ]; + + // Indexes in sequence a of last points in furthest reaching paths + // from outside the start at top left in the forward direction: + const aIndexesF = [NOT_YET_SET]; + // from the end at bottom right in the reverse direction: + const aIndexesR = [NOT_YET_SET]; + + // Initialize one object as output of all calls to divide function. + const division = { + aCommonFollowing: NOT_YET_SET, + aCommonPreceding: NOT_YET_SET, + aEndPreceding: NOT_YET_SET, + aStartFollowing: NOT_YET_SET, + bCommonFollowing: NOT_YET_SET, + bCommonPreceding: NOT_YET_SET, + bEndPreceding: NOT_YET_SET, + bStartFollowing: NOT_YET_SET, + nChangeFollowing: NOT_YET_SET, + nChangePreceding: NOT_YET_SET, + nCommonFollowing: NOT_YET_SET, + nCommonPreceding: NOT_YET_SET + }; + + // Find and return common subsequences in the trimmed index intervals. + findSubsequences( + nChange, + aStart, + aEnd, + bStart, + bEnd, + transposed, + callbacks, + aIndexesF, + aIndexesR, + division + ); + } + if (nCommonR !== 0) { + foundSubsequence(nCommonR, aEnd, bEnd); + } + } +} diff --git a/node_modules/diff-sequences/package.json b/node_modules/diff-sequences/package.json new file mode 100755 index 0000000..4b047d2 --- /dev/null +++ b/node_modules/diff-sequences/package.json @@ -0,0 +1,39 @@ +{ + "name": "diff-sequences", + "version": "29.3.1", + "repository": { + "type": "git", + "url": "https://github.com/facebook/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": "05deb8393c4ad71e19be2567b704dfd3a2ab5fc9" +} diff --git a/node_modules/domexception/LICENSE.txt b/node_modules/domexception/LICENSE.txt old mode 100644 new mode 100755 diff --git a/node_modules/domexception/README.md b/node_modules/domexception/README.md old mode 100644 new mode 100755 diff --git a/node_modules/domexception/index.js b/node_modules/domexception/index.js old mode 100644 new mode 100755 diff --git a/node_modules/domexception/lib/DOMException-impl.js b/node_modules/domexception/lib/DOMException-impl.js old mode 100644 new mode 100755 diff --git a/node_modules/domexception/lib/DOMException.js b/node_modules/domexception/lib/DOMException.js old mode 100644 new mode 100755 diff --git a/node_modules/domexception/lib/legacy-error-codes.json b/node_modules/domexception/lib/legacy-error-codes.json old mode 100644 new mode 100755 diff --git a/node_modules/domexception/lib/utils.js b/node_modules/domexception/lib/utils.js old mode 100644 new mode 100755 diff --git a/node_modules/domexception/node_modules/webidl-conversions/LICENSE.md b/node_modules/domexception/node_modules/webidl-conversions/LICENSE.md old mode 100644 new mode 100755 diff --git a/node_modules/domexception/node_modules/webidl-conversions/README.md b/node_modules/domexception/node_modules/webidl-conversions/README.md old mode 100644 new mode 100755 diff --git a/node_modules/domexception/node_modules/webidl-conversions/lib/index.js b/node_modules/domexception/node_modules/webidl-conversions/lib/index.js old mode 100644 new mode 100755 diff --git a/node_modules/domexception/node_modules/webidl-conversions/package.json b/node_modules/domexception/node_modules/webidl-conversions/package.json old mode 100644 new mode 100755 diff --git a/node_modules/domexception/package.json b/node_modules/domexception/package.json old mode 100644 new mode 100755 diff --git a/node_modules/domexception/webidl2js-wrapper.js b/node_modules/domexception/webidl2js-wrapper.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/CHANGELOG.md b/node_modules/domino/CHANGELOG.md old mode 100644 new mode 100755 diff --git a/node_modules/domino/LICENSE b/node_modules/domino/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/domino/README.md b/node_modules/domino/README.md old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/CSSStyleDeclaration.js b/node_modules/domino/lib/CSSStyleDeclaration.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/CharacterData.js b/node_modules/domino/lib/CharacterData.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/ChildNode.js b/node_modules/domino/lib/ChildNode.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/Comment.js b/node_modules/domino/lib/Comment.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/ContainerNode.js b/node_modules/domino/lib/ContainerNode.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/CustomEvent.js b/node_modules/domino/lib/CustomEvent.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/DOMException.js b/node_modules/domino/lib/DOMException.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/DOMImplementation.js b/node_modules/domino/lib/DOMImplementation.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/DOMTokenList.js b/node_modules/domino/lib/DOMTokenList.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/Document.js b/node_modules/domino/lib/Document.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/DocumentFragment.js b/node_modules/domino/lib/DocumentFragment.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/DocumentType.js b/node_modules/domino/lib/DocumentType.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/Element.js b/node_modules/domino/lib/Element.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/Event.js b/node_modules/domino/lib/Event.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/EventTarget.js b/node_modules/domino/lib/EventTarget.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/FilteredElementList.js b/node_modules/domino/lib/FilteredElementList.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/HTMLParser.js b/node_modules/domino/lib/HTMLParser.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/Leaf.js b/node_modules/domino/lib/Leaf.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/LinkedList.js b/node_modules/domino/lib/LinkedList.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/Location.js b/node_modules/domino/lib/Location.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/MouseEvent.js b/node_modules/domino/lib/MouseEvent.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/MutationConstants.js b/node_modules/domino/lib/MutationConstants.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/NamedNodeMap.js b/node_modules/domino/lib/NamedNodeMap.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/NavigatorID.js b/node_modules/domino/lib/NavigatorID.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/Node.js b/node_modules/domino/lib/Node.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/NodeFilter.js b/node_modules/domino/lib/NodeFilter.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/NodeIterator.js b/node_modules/domino/lib/NodeIterator.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/NodeList.es5.js b/node_modules/domino/lib/NodeList.es5.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/NodeList.es6.js b/node_modules/domino/lib/NodeList.es6.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/NodeList.js b/node_modules/domino/lib/NodeList.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/NodeTraversal.js b/node_modules/domino/lib/NodeTraversal.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/NodeUtils.js b/node_modules/domino/lib/NodeUtils.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/NonDocumentTypeChildNode.js b/node_modules/domino/lib/NonDocumentTypeChildNode.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/ProcessingInstruction.js b/node_modules/domino/lib/ProcessingInstruction.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/Text.js b/node_modules/domino/lib/Text.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/TreeWalker.js b/node_modules/domino/lib/TreeWalker.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/UIEvent.js b/node_modules/domino/lib/UIEvent.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/URL.js b/node_modules/domino/lib/URL.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/URLUtils.js b/node_modules/domino/lib/URLUtils.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/Window.js b/node_modules/domino/lib/Window.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/WindowTimers.js b/node_modules/domino/lib/WindowTimers.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/attributes.js b/node_modules/domino/lib/attributes.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/config.js b/node_modules/domino/lib/config.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/cssparser.js b/node_modules/domino/lib/cssparser.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/defineElement.js b/node_modules/domino/lib/defineElement.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/events.js b/node_modules/domino/lib/events.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/htmlelts.js b/node_modules/domino/lib/htmlelts.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/impl.js b/node_modules/domino/lib/impl.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/index.d.ts b/node_modules/domino/lib/index.d.ts old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/index.js b/node_modules/domino/lib/index.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/select.js b/node_modules/domino/lib/select.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/sloppy.js b/node_modules/domino/lib/sloppy.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/svg.js b/node_modules/domino/lib/svg.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/utils.js b/node_modules/domino/lib/utils.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/lib/xmlnames.js b/node_modules/domino/lib/xmlnames.js old mode 100644 new mode 100755 diff --git a/node_modules/domino/package.json b/node_modules/domino/package.json old mode 100644 new mode 100755 diff --git a/node_modules/ee-first/LICENSE b/node_modules/ee-first/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/ee-first/README.md b/node_modules/ee-first/README.md old mode 100644 new mode 100755 diff --git a/node_modules/ee-first/index.js b/node_modules/ee-first/index.js old mode 100644 new mode 100755 diff --git a/node_modules/ee-first/package.json b/node_modules/ee-first/package.json old mode 100644 new mode 100755 diff --git a/node_modules/electron-to-chromium/CHANGELOG.md b/node_modules/electron-to-chromium/CHANGELOG.md new file mode 100755 index 0000000..1669c34 --- /dev/null +++ b/node_modules/electron-to-chromium/CHANGELOG.md @@ -0,0 +1,14 @@ +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/node_modules/electron-to-chromium/LICENSE b/node_modules/electron-to-chromium/LICENSE new file mode 100755 index 0000000..6c7b614 --- /dev/null +++ b/node_modules/electron-to-chromium/LICENSE @@ -0,0 +1,5 @@ +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/node_modules/electron-to-chromium/README.md b/node_modules/electron-to-chromium/README.md new file mode 100755 index 0000000..a96ddf1 --- /dev/null +++ b/node_modules/electron-to-chromium/README.md @@ -0,0 +1,186 @@ +### 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/node_modules/electron-to-chromium/chromium-versions.js b/node_modules/electron-to-chromium/chromium-versions.js new file mode 100755 index 0000000..91ad1f2 --- /dev/null +++ b/node_modules/electron-to-chromium/chromium-versions.js @@ -0,0 +1,52 @@ +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" +}; \ No newline at end of file diff --git a/node_modules/electron-to-chromium/chromium-versions.json b/node_modules/electron-to-chromium/chromium-versions.json new file mode 100755 index 0000000..f45086a --- /dev/null +++ b/node_modules/electron-to-chromium/chromium-versions.json @@ -0,0 +1 @@ +{"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"} \ No newline at end of file diff --git a/node_modules/electron-to-chromium/full-chromium-versions.js b/node_modules/electron-to-chromium/full-chromium-versions.js new file mode 100755 index 0000000..f58aed6 --- /dev/null +++ b/node_modules/electron-to-chromium/full-chromium-versions.js @@ -0,0 +1,2188 @@ +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" + ], + "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.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.20190923", + "8.0.0-nightly.20190924", + "8.0.0-nightly.20190926", + "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.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.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.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.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.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.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.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" + ], + "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" + ], + "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" + ], + "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", + "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" + ], + "107.0.5274.0": [ + "22.0.0-nightly.20220908" + ] +}; \ No newline at end of file diff --git a/node_modules/electron-to-chromium/full-chromium-versions.json b/node_modules/electron-to-chromium/full-chromium-versions.json new file mode 100755 index 0000000..7e05839 --- /dev/null +++ b/node_modules/electron-to-chromium/full-chromium-versions.json @@ -0,0 +1 @@ +{"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"],"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.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.20190923","8.0.0-nightly.20190924","8.0.0-nightly.20190926","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.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.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.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.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.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.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.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"],"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"],"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"],"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","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"],"107.0.5274.0":["22.0.0-nightly.20220908"]} \ No newline at end of file diff --git a/node_modules/electron-to-chromium/full-versions.js b/node_modules/electron-to-chromium/full-versions.js new file mode 100755 index 0000000..efdfd47 --- /dev/null +++ b/node_modules/electron-to-chromium/full-versions.js @@ -0,0 +1,1618 @@ +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.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.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.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.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.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.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.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.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.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.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.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", + "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", + "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", + "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-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", + "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" +}; \ No newline at end of file diff --git a/node_modules/electron-to-chromium/full-versions.json b/node_modules/electron-to-chromium/full-versions.json new file mode 100755 index 0000000..84f6f05 --- /dev/null +++ b/node_modules/electron-to-chromium/full-versions.json @@ -0,0 +1 @@ +{"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.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.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.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.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.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.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.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.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.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.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.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","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","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","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-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","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"} \ No newline at end of file diff --git a/node_modules/electron-to-chromium/index.js b/node_modules/electron-to-chromium/index.js new file mode 100755 index 0000000..1818281 --- /dev/null +++ b/node_modules/electron-to-chromium/index.js @@ -0,0 +1,36 @@ +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/node_modules/electron-to-chromium/package.json b/node_modules/electron-to-chromium/package.json new file mode 100755 index 0000000..2b78fd9 --- /dev/null +++ b/node_modules/electron-to-chromium/package.json @@ -0,0 +1,42 @@ +{ + "name": "electron-to-chromium", + "version": "1.4.284", + "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.js", + "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", + "browserlist" + ], + "author": "Kilian Valkhof", + "license": "ISC", + "devDependencies": { + "ava": "^4.0.1", + "codecov": "^3.8.0", + "electron-releases": "^3.1171.0", + "nyc": "^15.1.0", + "request": "^2.65.0", + "shelljs": "^0.8.4" + } +} diff --git a/node_modules/electron-to-chromium/versions.js b/node_modules/electron-to-chromium/versions.js new file mode 100755 index 0000000..51e832c --- /dev/null +++ b/node_modules/electron-to-chromium/versions.js @@ -0,0 +1,105 @@ +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", + "22.0": "108" +}; \ No newline at end of file diff --git a/node_modules/electron-to-chromium/versions.json b/node_modules/electron-to-chromium/versions.json new file mode 100755 index 0000000..8dc14d8 --- /dev/null +++ b/node_modules/electron-to-chromium/versions.json @@ -0,0 +1 @@ +{"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","22.0":"108"} \ No newline at end of file diff --git a/node_modules/emittery/index.d.ts b/node_modules/emittery/index.d.ts new file mode 100755 index 0000000..4204a51 --- /dev/null +++ b/node_modules/emittery/index.d.ts @@ -0,0 +1,606 @@ +/* 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/node_modules/emittery/index.js b/node_modules/emittery/index.js new file mode 100755 index 0000000..b7ed7b6 --- /dev/null +++ b/node_modules/emittery/index.js @@ -0,0 +1,531 @@ +'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/node_modules/emittery/license b/node_modules/emittery/license new file mode 100755 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/emittery/license @@ -0,0 +1,9 @@ +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/node_modules/emittery/maps.js b/node_modules/emittery/maps.js new file mode 100755 index 0000000..7bf3421 --- /dev/null +++ b/node_modules/emittery/maps.js @@ -0,0 +1,9 @@ +const anyMap = new WeakMap(); +const eventsMap = new WeakMap(); +const producersMap = new WeakMap(); + +module.exports = { + anyMap, + eventsMap, + producersMap +}; diff --git a/node_modules/emittery/package.json b/node_modules/emittery/package.json new file mode 100755 index 0000000..3398f22 --- /dev/null +++ b/node_modules/emittery/package.json @@ -0,0 +1,67 @@ +{ + "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/node_modules/emittery/readme.md b/node_modules/emittery/readme.md new file mode 100755 index 0000000..e93700b --- /dev/null +++ b/node_modules/emittery/readme.md @@ -0,0 +1,569 @@ +# + +> 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/node_modules/emoji-regex/LICENSE-MIT.txt b/node_modules/emoji-regex/LICENSE-MIT.txt new file mode 100755 index 0000000..a41e0a7 --- /dev/null +++ b/node_modules/emoji-regex/LICENSE-MIT.txt @@ -0,0 +1,20 @@ +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/node_modules/emoji-regex/README.md b/node_modules/emoji-regex/README.md new file mode 100755 index 0000000..f10e173 --- /dev/null +++ b/node_modules/emoji-regex/README.md @@ -0,0 +1,73 @@ +# 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/node_modules/emoji-regex/es2015/index.js b/node_modules/emoji-regex/es2015/index.js new file mode 100755 index 0000000..b4cf3dc --- /dev/null +++ b/node_modules/emoji-regex/es2015/index.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = () => { + // https://mths.be/emoji + return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0073}\u{E0063}\u{E0074}|\u{E0077}\u{E006C}\u{E0073})\u{E007F}|\u{1F468}(?:\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}\u{1F3FB}|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|[\u{1F3FB}-\u{1F3FF}])|(?:\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469})\u{1F3FB}|\u{1F9D1}(?:\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u200D\u{1F91D}\u200D\u{1F9D1})|(?:\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}\u{1F3FC}]|\u{1F469}(?:\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FB}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|(?:\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}-\u{1F3FD}]|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F3F4}\u200D\u2620)\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F415}\u200D\u{1F9BA}|\u{1F469}\u200D\u{1F466}|\u{1F469}\u200D\u{1F467}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F1F6}\u{1F1E6}|[#\*0-9]\uFE0F\u20E3|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\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\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]|[#\*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\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6D5}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]\uFE0F|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93C}-\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9BB}\u{1F9CD}-\u{1F9CF}\u{1F9D1}-\u{1F9DD}]/gu; +}; diff --git a/node_modules/emoji-regex/es2015/text.js b/node_modules/emoji-regex/es2015/text.js new file mode 100755 index 0000000..780309d --- /dev/null +++ b/node_modules/emoji-regex/es2015/text.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = () => { + // https://mths.be/emoji + return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0073}\u{E0063}\u{E0074}|\u{E0077}\u{E006C}\u{E0073})\u{E007F}|\u{1F468}(?:\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}\u{1F3FB}|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|[\u{1F3FB}-\u{1F3FF}])|(?:\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469})\u{1F3FB}|\u{1F9D1}(?:\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u200D\u{1F91D}\u200D\u{1F9D1})|(?:\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}\u{1F3FC}]|\u{1F469}(?:\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FB}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|(?:\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}-\u{1F3FD}]|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F3F4}\u200D\u2620)\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F415}\u200D\u{1F9BA}|\u{1F469}\u200D\u{1F466}|\u{1F469}\u200D\u{1F467}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F1F6}\u{1F1E6}|[#\*0-9]\uFE0F\u20E3|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\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\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]|[#\*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\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6D5}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]\uFE0F?|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93C}-\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9BB}\u{1F9CD}-\u{1F9CF}\u{1F9D1}-\u{1F9DD}]/gu; +}; diff --git a/node_modules/emoji-regex/index.d.ts b/node_modules/emoji-regex/index.d.ts new file mode 100755 index 0000000..1955b47 --- /dev/null +++ b/node_modules/emoji-regex/index.d.ts @@ -0,0 +1,23 @@ +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/node_modules/emoji-regex/index.js b/node_modules/emoji-regex/index.js new file mode 100755 index 0000000..d993a3a --- /dev/null +++ b/node_modules/emoji-regex/index.js @@ -0,0 +1,6 @@ +"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/node_modules/emoji-regex/package.json b/node_modules/emoji-regex/package.json new file mode 100755 index 0000000..6d32352 --- /dev/null +++ b/node_modules/emoji-regex/package.json @@ -0,0 +1,50 @@ +{ + "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/node_modules/emoji-regex/text.js b/node_modules/emoji-regex/text.js new file mode 100755 index 0000000..0a55ce2 --- /dev/null +++ b/node_modules/emoji-regex/text.js @@ -0,0 +1,6 @@ +"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/node_modules/encodeurl/HISTORY.md b/node_modules/encodeurl/HISTORY.md old mode 100644 new mode 100755 diff --git a/node_modules/encodeurl/LICENSE b/node_modules/encodeurl/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/encodeurl/README.md b/node_modules/encodeurl/README.md old mode 100644 new mode 100755 diff --git a/node_modules/encodeurl/index.js b/node_modules/encodeurl/index.js old mode 100644 new mode 100755 diff --git a/node_modules/encodeurl/package.json b/node_modules/encodeurl/package.json old mode 100644 new mode 100755 diff --git a/node_modules/error-ex/LICENSE b/node_modules/error-ex/LICENSE new file mode 100755 index 0000000..0a5f461 --- /dev/null +++ b/node_modules/error-ex/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 JD Ballard + +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/node_modules/error-ex/README.md b/node_modules/error-ex/README.md new file mode 100755 index 0000000..97f744a --- /dev/null +++ b/node_modules/error-ex/README.md @@ -0,0 +1,144 @@ +# node-error-ex [![Travis-CI.org Build Status](https://img.shields.io/travis/Qix-/node-error-ex.svg?style=flat-square)](https://travis-ci.org/Qix-/node-error-ex) [![Coveralls.io Coverage Rating](https://img.shields.io/coveralls/Qix-/node-error-ex.svg?style=flat-square)](https://coveralls.io/r/Qix-/node-error-ex) +> Easily subclass and customize new Error types + +## Examples +To include in your project: +```javascript +var errorEx = require('error-ex'); +``` + +To create an error message type with a specific name (note, that `ErrorFn.name` +will not reflect this): +```javascript +var JSONError = errorEx('JSONError'); + +var err = new JSONError('error'); +err.name; //-> JSONError +throw err; //-> JSONError: error +``` + +To add a stack line: +```javascript +var JSONError = errorEx('JSONError', {fileName: errorEx.line('in %s')}); + +var err = new JSONError('error') +err.fileName = '/a/b/c/foo.json'; +throw err; //-> (line 2)-> in /a/b/c/foo.json +``` + +To append to the error message: +```javascript +var JSONError = errorEx('JSONError', {fileName: errorEx.append('in %s')}); + +var err = new JSONError('error'); +err.fileName = '/a/b/c/foo.json'; +throw err; //-> JSONError: error in /a/b/c/foo.json +``` + +## API + +#### `errorEx([name], [properties])` +Creates a new ErrorEx error type + +- `name`: the name of the new type (appears in the error message upon throw; + defaults to `Error.name`) +- `properties`: if supplied, used as a key/value dictionary of properties to + use when building up the stack message. Keys are property names that are + looked up on the error message, and then passed to function values. + - `line`: if specified and is a function, return value is added as a stack + entry (error-ex will indent for you). Passed the property value given + the key. + - `stack`: if specified and is a function, passed the value of the property + using the key, and the raw stack lines as a second argument. Takes no + return value (but the stack can be modified directly). + - `message`: if specified and is a function, return value is used as new + `.message` value upon get. Passed the property value of the property named + by key, and the existing message is passed as the second argument as an + array of lines (suitable for multi-line messages). + +Returns a constructor (Function) that can be used just like the regular Error +constructor. + +```javascript +var errorEx = require('error-ex'); + +var BasicError = errorEx(); + +var NamedError = errorEx('NamedError'); + +// -- + +var AdvancedError = errorEx('AdvancedError', { + foo: { + line: function (value, stack) { + if (value) { + return 'bar ' + value; + } + return null; + } + } +} + +var err = new AdvancedError('hello, world'); +err.foo = 'baz'; +throw err; + +/* + AdvancedError: hello, world + bar baz + at tryReadme() (readme.js:20:1) +*/ +``` + +#### `errorEx.line(str)` +Creates a stack line using a delimiter + +> This is a helper function. It is to be used in lieu of writing a value object +> for `properties` values. + +- `str`: The string to create + - Use the delimiter `%s` to specify where in the string the value should go + +```javascript +var errorEx = require('error-ex'); + +var FileError = errorEx('FileError', {fileName: errorEx.line('in %s')}); + +var err = new FileError('problem reading file'); +err.fileName = '/a/b/c/d/foo.js'; +throw err; + +/* + FileError: problem reading file + in /a/b/c/d/foo.js + at tryReadme() (readme.js:7:1) +*/ +``` + +#### `errorEx.append(str)` +Appends to the `error.message` string + +> This is a helper function. It is to be used in lieu of writing a value object +> for `properties` values. + +- `str`: The string to append + - Use the delimiter `%s` to specify where in the string the value should go + +```javascript +var errorEx = require('error-ex'); + +var SyntaxError = errorEx('SyntaxError', {fileName: errorEx.append('in %s')}); + +var err = new SyntaxError('improper indentation'); +err.fileName = '/a/b/c/d/foo.js'; +throw err; + +/* + SyntaxError: improper indentation in /a/b/c/d/foo.js + at tryReadme() (readme.js:7:1) +*/ +``` + +## License +Licensed under the [MIT License](http://opensource.org/licenses/MIT). +You can find a copy of it in [LICENSE](LICENSE). diff --git a/node_modules/error-ex/index.js b/node_modules/error-ex/index.js new file mode 100755 index 0000000..4fb20b4 --- /dev/null +++ b/node_modules/error-ex/index.js @@ -0,0 +1,141 @@ +'use strict'; + +var util = require('util'); +var isArrayish = require('is-arrayish'); + +var errorEx = function errorEx(name, properties) { + if (!name || name.constructor !== String) { + properties = name || {}; + name = Error.name; + } + + var errorExError = function ErrorEXError(message) { + if (!this) { + return new ErrorEXError(message); + } + + message = message instanceof Error + ? message.message + : (message || this.message); + + Error.call(this, message); + Error.captureStackTrace(this, errorExError); + + this.name = name; + + Object.defineProperty(this, 'message', { + configurable: true, + enumerable: false, + get: function () { + var newMessage = message.split(/\r?\n/g); + + for (var key in properties) { + if (!properties.hasOwnProperty(key)) { + continue; + } + + var modifier = properties[key]; + + if ('message' in modifier) { + newMessage = modifier.message(this[key], newMessage) || newMessage; + if (!isArrayish(newMessage)) { + newMessage = [newMessage]; + } + } + } + + return newMessage.join('\n'); + }, + set: function (v) { + message = v; + } + }); + + var overwrittenStack = null; + + var stackDescriptor = Object.getOwnPropertyDescriptor(this, 'stack'); + var stackGetter = stackDescriptor.get; + var stackValue = stackDescriptor.value; + delete stackDescriptor.value; + delete stackDescriptor.writable; + + stackDescriptor.set = function (newstack) { + overwrittenStack = newstack; + }; + + stackDescriptor.get = function () { + var stack = (overwrittenStack || ((stackGetter) + ? stackGetter.call(this) + : stackValue)).split(/\r?\n+/g); + + // starting in Node 7, the stack builder caches the message. + // just replace it. + if (!overwrittenStack) { + stack[0] = this.name + ': ' + this.message; + } + + var lineCount = 1; + for (var key in properties) { + if (!properties.hasOwnProperty(key)) { + continue; + } + + var modifier = properties[key]; + + if ('line' in modifier) { + var line = modifier.line(this[key]); + if (line) { + stack.splice(lineCount++, 0, ' ' + line); + } + } + + if ('stack' in modifier) { + modifier.stack(this[key], stack); + } + } + + return stack.join('\n'); + }; + + Object.defineProperty(this, 'stack', stackDescriptor); + }; + + if (Object.setPrototypeOf) { + Object.setPrototypeOf(errorExError.prototype, Error.prototype); + Object.setPrototypeOf(errorExError, Error); + } else { + util.inherits(errorExError, Error); + } + + return errorExError; +}; + +errorEx.append = function (str, def) { + return { + message: function (v, message) { + v = v || def; + + if (v) { + message[0] += ' ' + str.replace('%s', v.toString()); + } + + return message; + } + }; +}; + +errorEx.line = function (str, def) { + return { + line: function (v) { + v = v || def; + + if (v) { + return str.replace('%s', v.toString()); + } + + return null; + } + }; +}; + +module.exports = errorEx; diff --git a/node_modules/error-ex/package.json b/node_modules/error-ex/package.json new file mode 100755 index 0000000..f3d9ae0 --- /dev/null +++ b/node_modules/error-ex/package.json @@ -0,0 +1,46 @@ +{ + "name": "error-ex", + "description": "Easy error subclassing and stack customization", + "version": "1.3.2", + "maintainers": [ + "Josh Junon (github.com/qix-)", + "Sindre Sorhus (sindresorhus.com)" + ], + "keywords": [ + "error", + "errors", + "extend", + "extending", + "extension", + "subclass", + "stack", + "custom" + ], + "license": "MIT", + "scripts": { + "pretest": "xo", + "test": "mocha --compilers coffee:coffee-script/register" + }, + "xo": { + "rules": { + "operator-linebreak": [ + 0 + ] + } + }, + "repository": "qix-/node-error-ex", + "files": [ + "index.js" + ], + "devDependencies": { + "coffee-script": "^1.9.3", + "coveralls": "^2.11.2", + "istanbul": "^0.3.17", + "mocha": "^2.2.5", + "should": "^7.0.1", + "xo": "^0.7.1" + }, + "dependencies": { + "is-arrayish": "^0.2.1" + } +} diff --git a/node_modules/escalade/dist/index.js b/node_modules/escalade/dist/index.js new file mode 100755 index 0000000..ad236c4 --- /dev/null +++ b/node_modules/escalade/dist/index.js @@ -0,0 +1,22 @@ +const { dirname, resolve } = require('path'); +const { readdir, stat } = require('fs'); +const { promisify } = require('util'); + +const toStats = promisify(stat); +const toRead = promisify(readdir); + +module.exports = async function (start, callback) { + let dir = resolve('.', start); + let tmp, stats = await toStats(dir); + + if (!stats.isDirectory()) { + dir = dirname(dir); + } + + while (true) { + tmp = await callback(dir, await toRead(dir)); + if (tmp) return resolve(dir, tmp); + dir = dirname(tmp = dir); + if (tmp === dir) break; + } +} diff --git a/node_modules/escalade/dist/index.mjs b/node_modules/escalade/dist/index.mjs new file mode 100755 index 0000000..bf95be0 --- /dev/null +++ b/node_modules/escalade/dist/index.mjs @@ -0,0 +1,22 @@ +import { dirname, resolve } from 'path'; +import { readdir, stat } from 'fs'; +import { promisify } from 'util'; + +const toStats = promisify(stat); +const toRead = promisify(readdir); + +export default async function (start, callback) { + let dir = resolve('.', start); + let tmp, stats = await toStats(dir); + + if (!stats.isDirectory()) { + dir = dirname(dir); + } + + while (true) { + tmp = await callback(dir, await toRead(dir)); + if (tmp) return resolve(dir, tmp); + dir = dirname(tmp = dir); + if (tmp === dir) break; + } +} diff --git a/node_modules/escalade/index.d.ts b/node_modules/escalade/index.d.ts new file mode 100755 index 0000000..283e398 --- /dev/null +++ b/node_modules/escalade/index.d.ts @@ -0,0 +1,3 @@ +type Promisable = T | Promise; +export type Callback = (directory: string, files: string[]) => Promisable; +export default function (directory: string, callback: Callback): Promise; diff --git a/node_modules/escalade/license b/node_modules/escalade/license new file mode 100755 index 0000000..fa6089f --- /dev/null +++ b/node_modules/escalade/license @@ -0,0 +1,9 @@ +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/node_modules/escalade/package.json b/node_modules/escalade/package.json new file mode 100755 index 0000000..0d1bfce --- /dev/null +++ b/node_modules/escalade/package.json @@ -0,0 +1,61 @@ +{ + "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/node_modules/escalade/readme.md b/node_modules/escalade/readme.md new file mode 100755 index 0000000..4e2195c --- /dev/null +++ b/node_modules/escalade/readme.md @@ -0,0 +1,211 @@ +# 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/node_modules/escalade/sync/index.d.ts b/node_modules/escalade/sync/index.d.ts new file mode 100755 index 0000000..746ddd3 --- /dev/null +++ b/node_modules/escalade/sync/index.d.ts @@ -0,0 +1,2 @@ +export type Callback = (directory: string, files: string[]) => string | false | void; +export default function (directory: string, callback: Callback): string | void; diff --git a/node_modules/escalade/sync/index.js b/node_modules/escalade/sync/index.js new file mode 100755 index 0000000..902cc46 --- /dev/null +++ b/node_modules/escalade/sync/index.js @@ -0,0 +1,18 @@ +const { dirname, resolve } = require('path'); +const { readdirSync, statSync } = require('fs'); + +module.exports = function (start, callback) { + let dir = resolve('.', start); + let tmp, stats = statSync(dir); + + if (!stats.isDirectory()) { + dir = dirname(dir); + } + + while (true) { + tmp = callback(dir, readdirSync(dir)); + if (tmp) return resolve(dir, tmp); + dir = dirname(tmp = dir); + if (tmp === dir) break; + } +} diff --git a/node_modules/escalade/sync/index.mjs b/node_modules/escalade/sync/index.mjs new file mode 100755 index 0000000..3cdc5bd --- /dev/null +++ b/node_modules/escalade/sync/index.mjs @@ -0,0 +1,18 @@ +import { dirname, resolve } from 'path'; +import { readdirSync, statSync } from 'fs'; + +export default function (start, callback) { + let dir = resolve('.', start); + let tmp, stats = statSync(dir); + + if (!stats.isDirectory()) { + dir = dirname(dir); + } + + while (true) { + tmp = callback(dir, readdirSync(dir)); + if (tmp) return resolve(dir, tmp); + dir = dirname(tmp = dir); + if (tmp === dir) break; + } +} diff --git a/node_modules/escape-html/LICENSE b/node_modules/escape-html/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/escape-html/Readme.md b/node_modules/escape-html/Readme.md old mode 100644 new mode 100755 diff --git a/node_modules/escape-html/index.js b/node_modules/escape-html/index.js old mode 100644 new mode 100755 diff --git a/node_modules/escape-html/package.json b/node_modules/escape-html/package.json old mode 100644 new mode 100755 diff --git a/node_modules/escape-string-regexp/index.d.ts b/node_modules/escape-string-regexp/index.d.ts new file mode 100755 index 0000000..7d34edc --- /dev/null +++ b/node_modules/escape-string-regexp/index.d.ts @@ -0,0 +1,18 @@ +/** +Escape RegExp special characters. + +You can also use this to escape a string that is inserted into the middle of a regex, for example, into a character class. + +@example +``` +import escapeStringRegexp = require('escape-string-regexp'); + +const escapedString = escapeStringRegexp('How much $ for a 🦄?'); +//=> 'How much \\$ for a 🦄\\?' + +new RegExp(escapedString); +``` +*/ +declare const escapeStringRegexp: (string: string) => string; + +export = escapeStringRegexp; diff --git a/node_modules/escape-string-regexp/index.js b/node_modules/escape-string-regexp/index.js new file mode 100755 index 0000000..58217a4 --- /dev/null +++ b/node_modules/escape-string-regexp/index.js @@ -0,0 +1,11 @@ +'use strict'; + +const matchOperatorsRegex = /[|\\{}()[\]^$+*?.-]/g; + +module.exports = string => { + if (typeof string !== 'string') { + throw new TypeError('Expected a string'); + } + + return string.replace(matchOperatorsRegex, '\\$&'); +}; diff --git a/node_modules/escape-string-regexp/license b/node_modules/escape-string-regexp/license new file mode 100755 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/escape-string-regexp/license @@ -0,0 +1,9 @@ +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/node_modules/escape-string-regexp/package.json b/node_modules/escape-string-regexp/package.json new file mode 100755 index 0000000..2e343cf --- /dev/null +++ b/node_modules/escape-string-regexp/package.json @@ -0,0 +1,43 @@ +{ + "name": "escape-string-regexp", + "version": "2.0.0", + "description": "Escape RegExp special characters", + "license": "MIT", + "repository": "sindresorhus/escape-string-regexp", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "maintainers": [ + "Sindre Sorhus (sindresorhus.com)", + "Joshua Boy Nicolai Appelman (jbna.nl)" + ], + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "escape", + "regex", + "regexp", + "re", + "regular", + "expression", + "string", + "str", + "special", + "characters" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/escape-string-regexp/readme.md b/node_modules/escape-string-regexp/readme.md new file mode 100755 index 0000000..157472b --- /dev/null +++ b/node_modules/escape-string-regexp/readme.md @@ -0,0 +1,29 @@ +# escape-string-regexp [![Build Status](https://travis-ci.org/sindresorhus/escape-string-regexp.svg?branch=master)](https://travis-ci.org/sindresorhus/escape-string-regexp) + +> Escape RegExp special characters + + +## Install + +``` +$ npm install escape-string-regexp +``` + + +## Usage + +```js +const escapeStringRegexp = require('escape-string-regexp'); + +const escapedString = escapeStringRegexp('How much $ for a 🦄?'); +//=> 'How much \\$ for a 🦄\\?' + +new RegExp(escapedString); +``` + +You can also use this to escape a string that is inserted into the middle of a regex, for example, into a character class. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/escodegen/LICENSE.BSD b/node_modules/escodegen/LICENSE.BSD old mode 100644 new mode 100755 diff --git a/node_modules/escodegen/README.md b/node_modules/escodegen/README.md old mode 100644 new mode 100755 diff --git a/node_modules/escodegen/escodegen.js b/node_modules/escodegen/escodegen.js old mode 100644 new mode 100755 diff --git a/node_modules/escodegen/package.json b/node_modules/escodegen/package.json old mode 100644 new mode 100755 diff --git a/node_modules/esprima/ChangeLog b/node_modules/esprima/ChangeLog old mode 100644 new mode 100755 diff --git a/node_modules/esprima/LICENSE.BSD b/node_modules/esprima/LICENSE.BSD old mode 100644 new mode 100755 diff --git a/node_modules/esprima/README.md b/node_modules/esprima/README.md old mode 100644 new mode 100755 diff --git a/node_modules/esprima/dist/esprima.js b/node_modules/esprima/dist/esprima.js old mode 100644 new mode 100755 diff --git a/node_modules/esprima/package.json b/node_modules/esprima/package.json old mode 100644 new mode 100755 diff --git a/node_modules/estraverse/.jshintrc b/node_modules/estraverse/.jshintrc old mode 100644 new mode 100755 diff --git a/node_modules/estraverse/LICENSE.BSD b/node_modules/estraverse/LICENSE.BSD old mode 100644 new mode 100755 diff --git a/node_modules/estraverse/README.md b/node_modules/estraverse/README.md old mode 100644 new mode 100755 diff --git a/node_modules/estraverse/estraverse.js b/node_modules/estraverse/estraverse.js old mode 100644 new mode 100755 diff --git a/node_modules/estraverse/gulpfile.js b/node_modules/estraverse/gulpfile.js old mode 100644 new mode 100755 diff --git a/node_modules/estraverse/package.json b/node_modules/estraverse/package.json old mode 100644 new mode 100755 diff --git a/node_modules/esutils/LICENSE.BSD b/node_modules/esutils/LICENSE.BSD old mode 100644 new mode 100755 diff --git a/node_modules/esutils/README.md b/node_modules/esutils/README.md old mode 100644 new mode 100755 diff --git a/node_modules/esutils/lib/ast.js b/node_modules/esutils/lib/ast.js old mode 100644 new mode 100755 diff --git a/node_modules/esutils/lib/code.js b/node_modules/esutils/lib/code.js old mode 100644 new mode 100755 diff --git a/node_modules/esutils/lib/keyword.js b/node_modules/esutils/lib/keyword.js old mode 100644 new mode 100755 diff --git a/node_modules/esutils/lib/utils.js b/node_modules/esutils/lib/utils.js old mode 100644 new mode 100755 diff --git a/node_modules/esutils/package.json b/node_modules/esutils/package.json old mode 100644 new mode 100755 diff --git a/node_modules/etag/HISTORY.md b/node_modules/etag/HISTORY.md old mode 100644 new mode 100755 diff --git a/node_modules/etag/LICENSE b/node_modules/etag/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/etag/README.md b/node_modules/etag/README.md old mode 100644 new mode 100755 diff --git a/node_modules/etag/index.js b/node_modules/etag/index.js old mode 100644 new mode 100755 diff --git a/node_modules/etag/package.json b/node_modules/etag/package.json old mode 100644 new mode 100755 diff --git a/node_modules/execa/index.d.ts b/node_modules/execa/index.d.ts new file mode 100755 index 0000000..417d535 --- /dev/null +++ b/node_modules/execa/index.d.ts @@ -0,0 +1,564 @@ +/// +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/node_modules/execa/index.js b/node_modules/execa/index.js new file mode 100755 index 0000000..6fc9f12 --- /dev/null +++ b/node_modules/execa/index.js @@ -0,0 +1,268 @@ +'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/node_modules/execa/lib/command.js b/node_modules/execa/lib/command.js new file mode 100755 index 0000000..859b006 --- /dev/null +++ b/node_modules/execa/lib/command.js @@ -0,0 +1,52 @@ +'use strict'; +const normalizeArgs = (file, args = []) => { + if (!Array.isArray(args)) { + return [file]; + } + + return [file, ...args]; +}; + +const NO_ESCAPE_REGEXP = /^[\w.-]+$/; +const DOUBLE_QUOTES_REGEXP = /"/g; + +const escapeArg = arg => { + if (typeof arg !== 'string' || NO_ESCAPE_REGEXP.test(arg)) { + return arg; + } + + return `"${arg.replace(DOUBLE_QUOTES_REGEXP, '\\"')}"`; +}; + +const joinCommand = (file, args) => { + return normalizeArgs(file, args).join(' '); +}; + +const getEscapedCommand = (file, args) => { + return normalizeArgs(file, args).map(arg => escapeArg(arg)).join(' '); +}; + +const SPACES_REGEXP = / +/g; + +// Handle `execa.command()` +const parseCommand = command => { + const tokens = []; + for (const token of command.trim().split(SPACES_REGEXP)) { + // Allow spaces to be escaped by a backslash if not meant as a delimiter + const previousToken = tokens[tokens.length - 1]; + if (previousToken && previousToken.endsWith('\\')) { + // Merge previous token with current one + tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`; + } else { + tokens.push(token); + } + } + + return tokens; +}; + +module.exports = { + joinCommand, + getEscapedCommand, + parseCommand +}; diff --git a/node_modules/execa/lib/error.js b/node_modules/execa/lib/error.js new file mode 100755 index 0000000..4214467 --- /dev/null +++ b/node_modules/execa/lib/error.js @@ -0,0 +1,88 @@ +'use strict'; +const {signalsByName} = require('human-signals'); + +const getErrorPrefix = ({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled}) => { + if (timedOut) { + return `timed out after ${timeout} milliseconds`; + } + + if (isCanceled) { + return 'was canceled'; + } + + if (errorCode !== undefined) { + return `failed with ${errorCode}`; + } + + if (signal !== undefined) { + return `was killed with ${signal} (${signalDescription})`; + } + + if (exitCode !== undefined) { + return `failed with exit code ${exitCode}`; + } + + return 'failed'; +}; + +const makeError = ({ + stdout, + stderr, + all, + error, + signal, + exitCode, + command, + escapedCommand, + timedOut, + isCanceled, + killed, + parsed: {options: {timeout}} +}) => { + // `signal` and `exitCode` emitted on `spawned.on('exit')` event can be `null`. + // We normalize them to `undefined` + exitCode = exitCode === null ? undefined : exitCode; + signal = signal === null ? undefined : signal; + const signalDescription = signal === undefined ? undefined : signalsByName[signal].description; + + const errorCode = error && error.code; + + const prefix = getErrorPrefix({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled}); + const execaMessage = `Command ${prefix}: ${command}`; + const isError = Object.prototype.toString.call(error) === '[object Error]'; + const shortMessage = isError ? `${execaMessage}\n${error.message}` : execaMessage; + const message = [shortMessage, stderr, stdout].filter(Boolean).join('\n'); + + if (isError) { + error.originalMessage = error.message; + error.message = message; + } else { + error = new Error(message); + } + + error.shortMessage = shortMessage; + error.command = command; + error.escapedCommand = escapedCommand; + error.exitCode = exitCode; + error.signal = signal; + error.signalDescription = signalDescription; + error.stdout = stdout; + error.stderr = stderr; + + if (all !== undefined) { + error.all = all; + } + + if ('bufferedData' in error) { + delete error.bufferedData; + } + + error.failed = true; + error.timedOut = Boolean(timedOut); + error.isCanceled = isCanceled; + error.killed = killed && !timedOut; + + return error; +}; + +module.exports = makeError; diff --git a/node_modules/execa/lib/kill.js b/node_modules/execa/lib/kill.js new file mode 100755 index 0000000..287a142 --- /dev/null +++ b/node_modules/execa/lib/kill.js @@ -0,0 +1,115 @@ +'use strict'; +const os = require('os'); +const onExit = require('signal-exit'); + +const DEFAULT_FORCE_KILL_TIMEOUT = 1000 * 5; + +// Monkey-patches `childProcess.kill()` to add `forceKillAfterTimeout` behavior +const spawnedKill = (kill, signal = 'SIGTERM', options = {}) => { + const killResult = kill(signal); + setKillTimeout(kill, signal, options, killResult); + return killResult; +}; + +const setKillTimeout = (kill, signal, options, killResult) => { + if (!shouldForceKill(signal, options, killResult)) { + return; + } + + const timeout = getForceKillAfterTimeout(options); + const t = setTimeout(() => { + kill('SIGKILL'); + }, timeout); + + // Guarded because there's no `.unref()` when `execa` is used in the renderer + // process in Electron. This cannot be tested since we don't run tests in + // Electron. + // istanbul ignore else + if (t.unref) { + t.unref(); + } +}; + +const shouldForceKill = (signal, {forceKillAfterTimeout}, killResult) => { + return isSigterm(signal) && forceKillAfterTimeout !== false && killResult; +}; + +const isSigterm = signal => { + return signal === os.constants.signals.SIGTERM || + (typeof signal === 'string' && signal.toUpperCase() === 'SIGTERM'); +}; + +const getForceKillAfterTimeout = ({forceKillAfterTimeout = true}) => { + if (forceKillAfterTimeout === true) { + return DEFAULT_FORCE_KILL_TIMEOUT; + } + + if (!Number.isFinite(forceKillAfterTimeout) || forceKillAfterTimeout < 0) { + throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${forceKillAfterTimeout}\` (${typeof forceKillAfterTimeout})`); + } + + return forceKillAfterTimeout; +}; + +// `childProcess.cancel()` +const spawnedCancel = (spawned, context) => { + const killResult = spawned.kill(); + + if (killResult) { + context.isCanceled = true; + } +}; + +const timeoutKill = (spawned, signal, reject) => { + spawned.kill(signal); + reject(Object.assign(new Error('Timed out'), {timedOut: true, signal})); +}; + +// `timeout` option handling +const setupTimeout = (spawned, {timeout, killSignal = 'SIGTERM'}, spawnedPromise) => { + if (timeout === 0 || timeout === undefined) { + return spawnedPromise; + } + + let timeoutId; + const timeoutPromise = new Promise((resolve, reject) => { + timeoutId = setTimeout(() => { + timeoutKill(spawned, killSignal, reject); + }, timeout); + }); + + const safeSpawnedPromise = spawnedPromise.finally(() => { + clearTimeout(timeoutId); + }); + + return Promise.race([timeoutPromise, safeSpawnedPromise]); +}; + +const validateTimeout = ({timeout}) => { + if (timeout !== undefined && (!Number.isFinite(timeout) || timeout < 0)) { + throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${timeout}\` (${typeof timeout})`); + } +}; + +// `cleanup` option handling +const setExitHandler = async (spawned, {cleanup, detached}, timedPromise) => { + if (!cleanup || detached) { + return timedPromise; + } + + const removeExitHandler = onExit(() => { + spawned.kill(); + }); + + return timedPromise.finally(() => { + removeExitHandler(); + }); +}; + +module.exports = { + spawnedKill, + spawnedCancel, + setupTimeout, + validateTimeout, + setExitHandler +}; diff --git a/node_modules/execa/lib/promise.js b/node_modules/execa/lib/promise.js new file mode 100755 index 0000000..bd9d523 --- /dev/null +++ b/node_modules/execa/lib/promise.js @@ -0,0 +1,46 @@ +'use strict'; + +const nativePromisePrototype = (async () => {})().constructor.prototype; +const descriptors = ['then', 'catch', 'finally'].map(property => [ + property, + Reflect.getOwnPropertyDescriptor(nativePromisePrototype, property) +]); + +// The return value is a mixin of `childProcess` and `Promise` +const mergePromise = (spawned, promise) => { + for (const [property, descriptor] of descriptors) { + // Starting the main `promise` is deferred to avoid consuming streams + const value = typeof promise === 'function' ? + (...args) => Reflect.apply(descriptor.value, promise(), args) : + descriptor.value.bind(promise); + + Reflect.defineProperty(spawned, property, {...descriptor, value}); + } + + return spawned; +}; + +// Use promises instead of `child_process` events +const getSpawnedPromise = spawned => { + return new Promise((resolve, reject) => { + spawned.on('exit', (exitCode, signal) => { + resolve({exitCode, signal}); + }); + + spawned.on('error', error => { + reject(error); + }); + + if (spawned.stdin) { + spawned.stdin.on('error', error => { + reject(error); + }); + } + }); +}; + +module.exports = { + mergePromise, + getSpawnedPromise +}; + diff --git a/node_modules/execa/lib/stdio.js b/node_modules/execa/lib/stdio.js new file mode 100755 index 0000000..45129ed --- /dev/null +++ b/node_modules/execa/lib/stdio.js @@ -0,0 +1,52 @@ +'use strict'; +const aliases = ['stdin', 'stdout', 'stderr']; + +const hasAlias = options => aliases.some(alias => options[alias] !== undefined); + +const normalizeStdio = options => { + if (!options) { + return; + } + + const {stdio} = options; + + if (stdio === undefined) { + return aliases.map(alias => options[alias]); + } + + if (hasAlias(options)) { + throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${aliases.map(alias => `\`${alias}\``).join(', ')}`); + } + + if (typeof stdio === 'string') { + return stdio; + } + + if (!Array.isArray(stdio)) { + throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``); + } + + const length = Math.max(stdio.length, aliases.length); + return Array.from({length}, (value, index) => stdio[index]); +}; + +module.exports = normalizeStdio; + +// `ipc` is pushed unless it is already present +module.exports.node = options => { + const stdio = normalizeStdio(options); + + if (stdio === 'ipc') { + return 'ipc'; + } + + if (stdio === undefined || typeof stdio === 'string') { + return [stdio, stdio, stdio, 'ipc']; + } + + if (stdio.includes('ipc')) { + return stdio; + } + + return [...stdio, 'ipc']; +}; diff --git a/node_modules/execa/lib/stream.js b/node_modules/execa/lib/stream.js new file mode 100755 index 0000000..d445dd4 --- /dev/null +++ b/node_modules/execa/lib/stream.js @@ -0,0 +1,97 @@ +'use strict'; +const isStream = require('is-stream'); +const getStream = require('get-stream'); +const mergeStream = require('merge-stream'); + +// `input` option +const handleInput = (spawned, input) => { + // Checking for stdin is workaround for https://github.com/nodejs/node/issues/26852 + // @todo remove `|| spawned.stdin === undefined` once we drop support for Node.js <=12.2.0 + if (input === undefined || spawned.stdin === undefined) { + return; + } + + if (isStream(input)) { + input.pipe(spawned.stdin); + } else { + spawned.stdin.end(input); + } +}; + +// `all` interleaves `stdout` and `stderr` +const makeAllStream = (spawned, {all}) => { + if (!all || (!spawned.stdout && !spawned.stderr)) { + return; + } + + const mixed = mergeStream(); + + if (spawned.stdout) { + mixed.add(spawned.stdout); + } + + if (spawned.stderr) { + mixed.add(spawned.stderr); + } + + return mixed; +}; + +// On failure, `result.stdout|stderr|all` should contain the currently buffered stream +const getBufferedData = async (stream, streamPromise) => { + if (!stream) { + return; + } + + stream.destroy(); + + try { + return await streamPromise; + } catch (error) { + return error.bufferedData; + } +}; + +const getStreamPromise = (stream, {encoding, buffer, maxBuffer}) => { + if (!stream || !buffer) { + return; + } + + if (encoding) { + return getStream(stream, {encoding, maxBuffer}); + } + + return getStream.buffer(stream, {maxBuffer}); +}; + +// Retrieve result of child process: exit code, signal, error, streams (stdout/stderr/all) +const getSpawnedResult = async ({stdout, stderr, all}, {encoding, buffer, maxBuffer}, processDone) => { + const stdoutPromise = getStreamPromise(stdout, {encoding, buffer, maxBuffer}); + const stderrPromise = getStreamPromise(stderr, {encoding, buffer, maxBuffer}); + const allPromise = getStreamPromise(all, {encoding, buffer, maxBuffer: maxBuffer * 2}); + + try { + return await Promise.all([processDone, stdoutPromise, stderrPromise, allPromise]); + } catch (error) { + return Promise.all([ + {error, signal: error.signal, timedOut: error.timedOut}, + getBufferedData(stdout, stdoutPromise), + getBufferedData(stderr, stderrPromise), + getBufferedData(all, allPromise) + ]); + } +}; + +const validateInputSync = ({input}) => { + if (isStream(input)) { + throw new TypeError('The `input` option cannot be a stream in sync mode'); + } +}; + +module.exports = { + handleInput, + makeAllStream, + getSpawnedResult, + validateInputSync +}; + diff --git a/node_modules/execa/license b/node_modules/execa/license new file mode 100755 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/execa/license @@ -0,0 +1,9 @@ +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/node_modules/execa/package.json b/node_modules/execa/package.json new file mode 100755 index 0000000..22556f2 --- /dev/null +++ b/node_modules/execa/package.json @@ -0,0 +1,74 @@ +{ + "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/node_modules/execa/readme.md b/node_modules/execa/readme.md new file mode 100755 index 0000000..843edbc --- /dev/null +++ b/node_modules/execa/readme.md @@ -0,0 +1,663 @@ + +
+ +[![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/node_modules/exit/.jshintrc b/node_modules/exit/.jshintrc new file mode 100755 index 0000000..2b7e39b --- /dev/null +++ b/node_modules/exit/.jshintrc @@ -0,0 +1,14 @@ +{ + "curly": true, + "eqeqeq": true, + "immed": true, + "latedef": "nofunc", + "newcap": true, + "noarg": true, + "sub": true, + "undef": true, + "unused": true, + "boss": true, + "eqnull": true, + "node": true +} diff --git a/node_modules/exit/.npmignore b/node_modules/exit/.npmignore new file mode 100755 index 0000000..e69de29 diff --git a/node_modules/exit/.travis.yml b/node_modules/exit/.travis.yml new file mode 100755 index 0000000..42d4302 --- /dev/null +++ b/node_modules/exit/.travis.yml @@ -0,0 +1,6 @@ +language: node_js +node_js: + - 0.8 + - '0.10' +before_script: + - npm install -g grunt-cli diff --git a/node_modules/exit/Gruntfile.js b/node_modules/exit/Gruntfile.js new file mode 100755 index 0000000..ff37751 --- /dev/null +++ b/node_modules/exit/Gruntfile.js @@ -0,0 +1,48 @@ +'use strict'; + +module.exports = function(grunt) { + + // Project configuration. + grunt.initConfig({ + nodeunit: { + files: ['test/**/*_test.js'], + }, + jshint: { + options: { + jshintrc: '.jshintrc' + }, + gruntfile: { + src: 'Gruntfile.js' + }, + lib: { + src: ['lib/**/*.js'] + }, + test: { + src: ['test/**/*.js'] + }, + }, + watch: { + gruntfile: { + files: '<%= jshint.gruntfile.src %>', + tasks: ['jshint:gruntfile'] + }, + lib: { + files: '<%= jshint.lib.src %>', + tasks: ['jshint:lib', 'nodeunit'] + }, + test: { + files: '<%= jshint.test.src %>', + tasks: ['jshint:test', 'nodeunit'] + }, + }, + }); + + // These plugins provide necessary tasks. + grunt.loadNpmTasks('grunt-contrib-nodeunit'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-watch'); + + // Default task. + grunt.registerTask('default', ['jshint', 'nodeunit']); + +}; diff --git a/node_modules/exit/LICENSE-MIT b/node_modules/exit/LICENSE-MIT new file mode 100755 index 0000000..bb2aad6 --- /dev/null +++ b/node_modules/exit/LICENSE-MIT @@ -0,0 +1,22 @@ +Copyright (c) 2013 "Cowboy" Ben Alman + +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/node_modules/exit/README.md b/node_modules/exit/README.md new file mode 100755 index 0000000..20c364e --- /dev/null +++ b/node_modules/exit/README.md @@ -0,0 +1,75 @@ +# exit [![Build Status](https://secure.travis-ci.org/cowboy/node-exit.png?branch=master)](http://travis-ci.org/cowboy/node-exit) + +A replacement for process.exit that ensures stdio are fully drained before exiting. + +To make a long story short, if `process.exit` is called on Windows, script output is often truncated when pipe-redirecting `stdout` or `stderr`. This module attempts to work around this issue by waiting until those streams have been completely drained before actually calling `process.exit`. + +See [Node.js issue #3584](https://github.com/joyent/node/issues/3584) for further reference. + +Tested in OS X 10.8, Windows 7 on Node.js 0.8.25 and 0.10.18. + +Based on some code by [@vladikoff](https://github.com/vladikoff). + +## Getting Started +Install the module with: `npm install exit` + +```javascript +var exit = require('exit'); + +// These lines should appear in the output, EVEN ON WINDOWS. +console.log("omg"); +console.error("yay"); + +// process.exit(5); +exit(5); + +// These lines shouldn't appear in the output. +console.log("wtf"); +console.error("bro"); +``` + +## Don't believe me? Try it for yourself. + +In Windows, clone the repo and cd to the `test\fixtures` directory. The only difference between [log.js](test/fixtures/log.js) and [log-broken.js](test/fixtures/log-broken.js) is that the former uses `exit` while the latter calls `process.exit` directly. + +This test was done using cmd.exe, but you can see the same results using `| grep "std"` in either PowerShell or git-bash. + +``` +C:\node-exit\test\fixtures>node log.js 0 10 stdout stderr 2>&1 | find "std" +stdout 0 +stderr 0 +stdout 1 +stderr 1 +stdout 2 +stderr 2 +stdout 3 +stderr 3 +stdout 4 +stderr 4 +stdout 5 +stderr 5 +stdout 6 +stderr 6 +stdout 7 +stderr 7 +stdout 8 +stderr 8 +stdout 9 +stderr 9 + +C:\node-exit\test\fixtures>node log-broken.js 0 10 stdout stderr 2>&1 | find "std" + +C:\node-exit\test\fixtures> +``` + +## Contributing +In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/). + +## Release History +2013-11-26 - v0.1.2 - Fixed a bug with hanging processes. +2013-09-26 - v0.1.1 - Fixed some bugs. It seems to actually work now! +2013-09-20 - v0.1.0 - Initial release. + +## License +Copyright (c) 2013 "Cowboy" Ben Alman +Licensed under the MIT license. diff --git a/node_modules/exit/lib/exit.js b/node_modules/exit/lib/exit.js new file mode 100755 index 0000000..2883e05 --- /dev/null +++ b/node_modules/exit/lib/exit.js @@ -0,0 +1,41 @@ +/* + * exit + * https://github.com/cowboy/node-exit + * + * Copyright (c) 2013 "Cowboy" Ben Alman + * Licensed under the MIT license. + */ + +'use strict'; + +module.exports = function exit(exitCode, streams) { + if (!streams) { streams = [process.stdout, process.stderr]; } + var drainCount = 0; + // Actually exit if all streams are drained. + function tryToExit() { + if (drainCount === streams.length) { + process.exit(exitCode); + } + } + streams.forEach(function(stream) { + // Count drained streams now, but monitor non-drained streams. + if (stream.bufferSize === 0) { + drainCount++; + } else { + stream.write('', 'utf-8', function() { + drainCount++; + tryToExit(); + }); + } + // Prevent further writing. + stream.write = function() {}; + }); + // If all streams were already drained, exit now. + tryToExit(); + // In Windows, when run as a Node.js child process, a script utilizing + // this library might just exit with a 0 exit code, regardless. This code, + // despite the fact that it looks a bit crazy, appears to fix that. + process.on('exit', function() { + process.exit(exitCode); + }); +}; diff --git a/node_modules/exit/package.json b/node_modules/exit/package.json new file mode 100755 index 0000000..8513e30 --- /dev/null +++ b/node_modules/exit/package.json @@ -0,0 +1,47 @@ +{ + "name": "exit", + "description": "A replacement for process.exit that ensures stdio are fully drained before exiting.", + "version": "0.1.2", + "homepage": "https://github.com/cowboy/node-exit", + "author": { + "name": "\"Cowboy\" Ben Alman", + "url": "http://benalman.com/" + }, + "repository": { + "type": "git", + "url": "git://github.com/cowboy/node-exit.git" + }, + "bugs": { + "url": "https://github.com/cowboy/node-exit/issues" + }, + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/cowboy/node-exit/blob/master/LICENSE-MIT" + } + ], + "main": "lib/exit", + "engines": { + "node": ">= 0.8.0" + }, + "scripts": { + "test": "grunt nodeunit" + }, + "devDependencies": { + "grunt-contrib-jshint": "~0.6.4", + "grunt-contrib-nodeunit": "~0.2.0", + "grunt-contrib-watch": "~0.5.3", + "grunt": "~0.4.1", + "which": "~1.0.5" + }, + "keywords": [ + "exit", + "process", + "stdio", + "stdout", + "stderr", + "drain", + "flush", + "3584" + ] +} diff --git a/node_modules/exit/test/exit_test.js b/node_modules/exit/test/exit_test.js new file mode 100755 index 0000000..a91afb9 --- /dev/null +++ b/node_modules/exit/test/exit_test.js @@ -0,0 +1,121 @@ +'use strict'; + +/* + ======== A Handy Little Nodeunit Reference ======== + https://github.com/caolan/nodeunit + + Test methods: + test.expect(numAssertions) + test.done() + Test assertions: + test.ok(value, [message]) + test.equal(actual, expected, [message]) + test.notEqual(actual, expected, [message]) + test.deepEqual(actual, expected, [message]) + test.notDeepEqual(actual, expected, [message]) + test.strictEqual(actual, expected, [message]) + test.notStrictEqual(actual, expected, [message]) + test.throws(block, [error], [message]) + test.doesNotThrow(block, [error], [message]) + test.ifError(value) +*/ + +var fs = require('fs'); +var exec = require('child_process').exec; + +var _which = require('which').sync; +function which(command) { + try { + _which(command); + return command; + } catch (err) { + return false; + } +} + +// Look for grep first (any OS). If not found (but on Windows) look for find, +// which is Windows' horribly crippled grep alternative. +var grep = which('grep') || process.platform === 'win32' && which('find'); + +exports['exit'] = { + setUp: function(done) { + this.origCwd = process.cwd(); + process.chdir('test/fixtures'); + done(); + }, + tearDown: function(done) { + process.chdir(this.origCwd); + done(); + }, + 'grep': function(test) { + test.expect(1); + // Many unit tests depend on this. + test.ok(grep, 'A suitable "grep" or "find" program was not found in the PATH.'); + test.done(); + }, + // The rest of the tests are built dynamically, to keep things sane. +}; + +// A few helper functions. +function normalizeLineEndings(s) { + return s.replace(/\r?\n/g, '\n'); +} + +// Capture command output, normalizing captured stdout to unix file endings. +function run(command, callback) { + exec(command, function(error, stdout) { + callback(error ? error.code : 0, normalizeLineEndings(stdout)); + }); +} + +// Read a fixture file, normalizing file contents to unix file endings. +function fixture(filename) { + return normalizeLineEndings(String(fs.readFileSync(filename))); +} + +function buildTests() { + // Build individual unit tests for command output. + var counts = [10, 100, 1000]; + var outputs = [' stdout stderr', ' stdout', ' stderr']; + var pipes = ['', ' | ' + grep + ' "std"']; + counts.forEach(function(count) { + outputs.forEach(function(output) { + pipes.forEach(function(pipe) { + var command = 'node log.js 0 ' + count + output + ' 2>&1' + pipe; + exports['exit']['output (' + command + ')'] = function(test) { + test.expect(2); + run(command, function(code, actual) { + var expected = fixture(count + output.replace(/ /g, '-') + '.txt'); + // Sometimes, the actual file lines are out of order on Windows. + // But since the point of this lib is to drain the buffer and not + // guarantee output order, we only test the length. + test.equal(actual.length, expected.length, 'should be the same length.'); + // The "fail" lines in log.js should NOT be output! + test.ok(actual.indexOf('fail') === -1, 'should not output after exit is called.'); + test.done(); + }); + }; + }); + }); + }); + + // Build individual unit tests for exit codes. + var codes = [0, 1, 123]; + codes.forEach(function(code) { + var command = 'node log.js ' + code + ' 10 stdout stderr'; + exports['exit']['exit code (' + command + ')'] = function(test) { + test.expect(1); + run(command, function(actual) { + // The specified exit code should be passed through. + test.equal(actual, code, 'should exit with ' + code + ' error code.'); + test.done(); + }); + }; + }); +} + +// Don't bother building tests if grep wasn't found, otherwise everything will +// fail and the error will get lost. +if (grep) { + buildTests(); +} diff --git a/node_modules/exit/test/fixtures/10-stderr.txt b/node_modules/exit/test/fixtures/10-stderr.txt new file mode 100755 index 0000000..2859200 --- /dev/null +++ b/node_modules/exit/test/fixtures/10-stderr.txt @@ -0,0 +1,10 @@ +stderr 0 +stderr 1 +stderr 2 +stderr 3 +stderr 4 +stderr 5 +stderr 6 +stderr 7 +stderr 8 +stderr 9 diff --git a/node_modules/exit/test/fixtures/10-stdout-stderr.txt b/node_modules/exit/test/fixtures/10-stdout-stderr.txt new file mode 100755 index 0000000..9de8616 --- /dev/null +++ b/node_modules/exit/test/fixtures/10-stdout-stderr.txt @@ -0,0 +1,20 @@ +stdout 0 +stderr 0 +stdout 1 +stdout 2 +stderr 1 +stdout 3 +stderr 2 +stderr 3 +stdout 4 +stderr 4 +stdout 5 +stderr 5 +stdout 6 +stderr 6 +stdout 7 +stderr 7 +stdout 8 +stderr 8 +stdout 9 +stderr 9 diff --git a/node_modules/exit/test/fixtures/10-stdout.txt b/node_modules/exit/test/fixtures/10-stdout.txt new file mode 100755 index 0000000..1ce90dc --- /dev/null +++ b/node_modules/exit/test/fixtures/10-stdout.txt @@ -0,0 +1,10 @@ +stdout 0 +stdout 1 +stdout 2 +stdout 3 +stdout 4 +stdout 5 +stdout 6 +stdout 7 +stdout 8 +stdout 9 diff --git a/node_modules/exit/test/fixtures/100-stderr.txt b/node_modules/exit/test/fixtures/100-stderr.txt new file mode 100755 index 0000000..3a78c85 --- /dev/null +++ b/node_modules/exit/test/fixtures/100-stderr.txt @@ -0,0 +1,100 @@ +stderr 0 +stderr 1 +stderr 2 +stderr 3 +stderr 4 +stderr 5 +stderr 6 +stderr 7 +stderr 8 +stderr 9 +stderr 10 +stderr 11 +stderr 12 +stderr 13 +stderr 14 +stderr 15 +stderr 16 +stderr 17 +stderr 18 +stderr 19 +stderr 20 +stderr 21 +stderr 22 +stderr 23 +stderr 24 +stderr 25 +stderr 26 +stderr 27 +stderr 28 +stderr 29 +stderr 30 +stderr 31 +stderr 32 +stderr 33 +stderr 34 +stderr 35 +stderr 36 +stderr 37 +stderr 38 +stderr 39 +stderr 40 +stderr 41 +stderr 42 +stderr 43 +stderr 44 +stderr 45 +stderr 46 +stderr 47 +stderr 48 +stderr 49 +stderr 50 +stderr 51 +stderr 52 +stderr 53 +stderr 54 +stderr 55 +stderr 56 +stderr 57 +stderr 58 +stderr 59 +stderr 60 +stderr 61 +stderr 62 +stderr 63 +stderr 64 +stderr 65 +stderr 66 +stderr 67 +stderr 68 +stderr 69 +stderr 70 +stderr 71 +stderr 72 +stderr 73 +stderr 74 +stderr 75 +stderr 76 +stderr 77 +stderr 78 +stderr 79 +stderr 80 +stderr 81 +stderr 82 +stderr 83 +stderr 84 +stderr 85 +stderr 86 +stderr 87 +stderr 88 +stderr 89 +stderr 90 +stderr 91 +stderr 92 +stderr 93 +stderr 94 +stderr 95 +stderr 96 +stderr 97 +stderr 98 +stderr 99 diff --git a/node_modules/exit/test/fixtures/100-stdout-stderr.txt b/node_modules/exit/test/fixtures/100-stdout-stderr.txt new file mode 100755 index 0000000..65f35f4 --- /dev/null +++ b/node_modules/exit/test/fixtures/100-stdout-stderr.txt @@ -0,0 +1,200 @@ +stdout 0 +stderr 0 +stdout 1 +stderr 1 +stdout 2 +stderr 2 +stdout 3 +stderr 3 +stdout 4 +stderr 4 +stdout 5 +stderr 5 +stdout 6 +stderr 6 +stdout 7 +stderr 7 +stdout 8 +stderr 8 +stdout 9 +stderr 9 +stdout 10 +stderr 10 +stdout 11 +stderr 11 +stdout 12 +stderr 12 +stdout 13 +stderr 13 +stdout 14 +stderr 14 +stdout 15 +stderr 15 +stdout 16 +stderr 16 +stdout 17 +stderr 17 +stdout 18 +stderr 18 +stdout 19 +stderr 19 +stdout 20 +stderr 20 +stdout 21 +stderr 21 +stdout 22 +stderr 22 +stdout 23 +stderr 23 +stdout 24 +stderr 24 +stdout 25 +stderr 25 +stdout 26 +stderr 26 +stdout 27 +stderr 27 +stdout 28 +stderr 28 +stdout 29 +stderr 29 +stdout 30 +stderr 30 +stdout 31 +stderr 31 +stdout 32 +stderr 32 +stdout 33 +stderr 33 +stdout 34 +stderr 34 +stdout 35 +stderr 35 +stdout 36 +stderr 36 +stdout 37 +stderr 37 +stdout 38 +stderr 38 +stdout 39 +stderr 39 +stdout 40 +stderr 40 +stdout 41 +stderr 41 +stdout 42 +stderr 42 +stdout 43 +stderr 43 +stdout 44 +stderr 44 +stdout 45 +stderr 45 +stdout 46 +stderr 46 +stdout 47 +stderr 47 +stdout 48 +stderr 48 +stdout 49 +stderr 49 +stdout 50 +stderr 50 +stdout 51 +stderr 51 +stdout 52 +stderr 52 +stdout 53 +stderr 53 +stdout 54 +stderr 54 +stdout 55 +stderr 55 +stdout 56 +stderr 56 +stdout 57 +stderr 57 +stdout 58 +stderr 58 +stdout 59 +stderr 59 +stdout 60 +stderr 60 +stdout 61 +stderr 61 +stdout 62 +stderr 62 +stdout 63 +stderr 63 +stdout 64 +stderr 64 +stdout 65 +stderr 65 +stdout 66 +stderr 66 +stdout 67 +stderr 67 +stdout 68 +stderr 68 +stdout 69 +stderr 69 +stdout 70 +stderr 70 +stdout 71 +stderr 71 +stdout 72 +stderr 72 +stdout 73 +stderr 73 +stdout 74 +stderr 74 +stdout 75 +stderr 75 +stdout 76 +stderr 76 +stdout 77 +stderr 77 +stdout 78 +stderr 78 +stdout 79 +stderr 79 +stdout 80 +stderr 80 +stdout 81 +stderr 81 +stdout 82 +stderr 82 +stdout 83 +stderr 83 +stdout 84 +stderr 84 +stdout 85 +stderr 85 +stdout 86 +stderr 86 +stdout 87 +stderr 87 +stdout 88 +stderr 88 +stdout 89 +stderr 89 +stdout 90 +stderr 90 +stdout 91 +stderr 91 +stdout 92 +stderr 92 +stdout 93 +stderr 93 +stdout 94 +stderr 94 +stdout 95 +stderr 95 +stdout 96 +stderr 96 +stdout 97 +stderr 97 +stdout 98 +stderr 98 +stdout 99 +stderr 99 diff --git a/node_modules/exit/test/fixtures/100-stdout.txt b/node_modules/exit/test/fixtures/100-stdout.txt new file mode 100755 index 0000000..5d9cac2 --- /dev/null +++ b/node_modules/exit/test/fixtures/100-stdout.txt @@ -0,0 +1,100 @@ +stdout 0 +stdout 1 +stdout 2 +stdout 3 +stdout 4 +stdout 5 +stdout 6 +stdout 7 +stdout 8 +stdout 9 +stdout 10 +stdout 11 +stdout 12 +stdout 13 +stdout 14 +stdout 15 +stdout 16 +stdout 17 +stdout 18 +stdout 19 +stdout 20 +stdout 21 +stdout 22 +stdout 23 +stdout 24 +stdout 25 +stdout 26 +stdout 27 +stdout 28 +stdout 29 +stdout 30 +stdout 31 +stdout 32 +stdout 33 +stdout 34 +stdout 35 +stdout 36 +stdout 37 +stdout 38 +stdout 39 +stdout 40 +stdout 41 +stdout 42 +stdout 43 +stdout 44 +stdout 45 +stdout 46 +stdout 47 +stdout 48 +stdout 49 +stdout 50 +stdout 51 +stdout 52 +stdout 53 +stdout 54 +stdout 55 +stdout 56 +stdout 57 +stdout 58 +stdout 59 +stdout 60 +stdout 61 +stdout 62 +stdout 63 +stdout 64 +stdout 65 +stdout 66 +stdout 67 +stdout 68 +stdout 69 +stdout 70 +stdout 71 +stdout 72 +stdout 73 +stdout 74 +stdout 75 +stdout 76 +stdout 77 +stdout 78 +stdout 79 +stdout 80 +stdout 81 +stdout 82 +stdout 83 +stdout 84 +stdout 85 +stdout 86 +stdout 87 +stdout 88 +stdout 89 +stdout 90 +stdout 91 +stdout 92 +stdout 93 +stdout 94 +stdout 95 +stdout 96 +stdout 97 +stdout 98 +stdout 99 diff --git a/node_modules/exit/test/fixtures/1000-stderr.txt b/node_modules/exit/test/fixtures/1000-stderr.txt new file mode 100755 index 0000000..d637510 --- /dev/null +++ b/node_modules/exit/test/fixtures/1000-stderr.txt @@ -0,0 +1,1000 @@ +stderr 0 +stderr 1 +stderr 2 +stderr 3 +stderr 4 +stderr 5 +stderr 6 +stderr 7 +stderr 8 +stderr 9 +stderr 10 +stderr 11 +stderr 12 +stderr 13 +stderr 14 +stderr 15 +stderr 16 +stderr 17 +stderr 18 +stderr 19 +stderr 20 +stderr 21 +stderr 22 +stderr 23 +stderr 24 +stderr 25 +stderr 26 +stderr 27 +stderr 28 +stderr 29 +stderr 30 +stderr 31 +stderr 32 +stderr 33 +stderr 34 +stderr 35 +stderr 36 +stderr 37 +stderr 38 +stderr 39 +stderr 40 +stderr 41 +stderr 42 +stderr 43 +stderr 44 +stderr 45 +stderr 46 +stderr 47 +stderr 48 +stderr 49 +stderr 50 +stderr 51 +stderr 52 +stderr 53 +stderr 54 +stderr 55 +stderr 56 +stderr 57 +stderr 58 +stderr 59 +stderr 60 +stderr 61 +stderr 62 +stderr 63 +stderr 64 +stderr 65 +stderr 66 +stderr 67 +stderr 68 +stderr 69 +stderr 70 +stderr 71 +stderr 72 +stderr 73 +stderr 74 +stderr 75 +stderr 76 +stderr 77 +stderr 78 +stderr 79 +stderr 80 +stderr 81 +stderr 82 +stderr 83 +stderr 84 +stderr 85 +stderr 86 +stderr 87 +stderr 88 +stderr 89 +stderr 90 +stderr 91 +stderr 92 +stderr 93 +stderr 94 +stderr 95 +stderr 96 +stderr 97 +stderr 98 +stderr 99 +stderr 100 +stderr 101 +stderr 102 +stderr 103 +stderr 104 +stderr 105 +stderr 106 +stderr 107 +stderr 108 +stderr 109 +stderr 110 +stderr 111 +stderr 112 +stderr 113 +stderr 114 +stderr 115 +stderr 116 +stderr 117 +stderr 118 +stderr 119 +stderr 120 +stderr 121 +stderr 122 +stderr 123 +stderr 124 +stderr 125 +stderr 126 +stderr 127 +stderr 128 +stderr 129 +stderr 130 +stderr 131 +stderr 132 +stderr 133 +stderr 134 +stderr 135 +stderr 136 +stderr 137 +stderr 138 +stderr 139 +stderr 140 +stderr 141 +stderr 142 +stderr 143 +stderr 144 +stderr 145 +stderr 146 +stderr 147 +stderr 148 +stderr 149 +stderr 150 +stderr 151 +stderr 152 +stderr 153 +stderr 154 +stderr 155 +stderr 156 +stderr 157 +stderr 158 +stderr 159 +stderr 160 +stderr 161 +stderr 162 +stderr 163 +stderr 164 +stderr 165 +stderr 166 +stderr 167 +stderr 168 +stderr 169 +stderr 170 +stderr 171 +stderr 172 +stderr 173 +stderr 174 +stderr 175 +stderr 176 +stderr 177 +stderr 178 +stderr 179 +stderr 180 +stderr 181 +stderr 182 +stderr 183 +stderr 184 +stderr 185 +stderr 186 +stderr 187 +stderr 188 +stderr 189 +stderr 190 +stderr 191 +stderr 192 +stderr 193 +stderr 194 +stderr 195 +stderr 196 +stderr 197 +stderr 198 +stderr 199 +stderr 200 +stderr 201 +stderr 202 +stderr 203 +stderr 204 +stderr 205 +stderr 206 +stderr 207 +stderr 208 +stderr 209 +stderr 210 +stderr 211 +stderr 212 +stderr 213 +stderr 214 +stderr 215 +stderr 216 +stderr 217 +stderr 218 +stderr 219 +stderr 220 +stderr 221 +stderr 222 +stderr 223 +stderr 224 +stderr 225 +stderr 226 +stderr 227 +stderr 228 +stderr 229 +stderr 230 +stderr 231 +stderr 232 +stderr 233 +stderr 234 +stderr 235 +stderr 236 +stderr 237 +stderr 238 +stderr 239 +stderr 240 +stderr 241 +stderr 242 +stderr 243 +stderr 244 +stderr 245 +stderr 246 +stderr 247 +stderr 248 +stderr 249 +stderr 250 +stderr 251 +stderr 252 +stderr 253 +stderr 254 +stderr 255 +stderr 256 +stderr 257 +stderr 258 +stderr 259 +stderr 260 +stderr 261 +stderr 262 +stderr 263 +stderr 264 +stderr 265 +stderr 266 +stderr 267 +stderr 268 +stderr 269 +stderr 270 +stderr 271 +stderr 272 +stderr 273 +stderr 274 +stderr 275 +stderr 276 +stderr 277 +stderr 278 +stderr 279 +stderr 280 +stderr 281 +stderr 282 +stderr 283 +stderr 284 +stderr 285 +stderr 286 +stderr 287 +stderr 288 +stderr 289 +stderr 290 +stderr 291 +stderr 292 +stderr 293 +stderr 294 +stderr 295 +stderr 296 +stderr 297 +stderr 298 +stderr 299 +stderr 300 +stderr 301 +stderr 302 +stderr 303 +stderr 304 +stderr 305 +stderr 306 +stderr 307 +stderr 308 +stderr 309 +stderr 310 +stderr 311 +stderr 312 +stderr 313 +stderr 314 +stderr 315 +stderr 316 +stderr 317 +stderr 318 +stderr 319 +stderr 320 +stderr 321 +stderr 322 +stderr 323 +stderr 324 +stderr 325 +stderr 326 +stderr 327 +stderr 328 +stderr 329 +stderr 330 +stderr 331 +stderr 332 +stderr 333 +stderr 334 +stderr 335 +stderr 336 +stderr 337 +stderr 338 +stderr 339 +stderr 340 +stderr 341 +stderr 342 +stderr 343 +stderr 344 +stderr 345 +stderr 346 +stderr 347 +stderr 348 +stderr 349 +stderr 350 +stderr 351 +stderr 352 +stderr 353 +stderr 354 +stderr 355 +stderr 356 +stderr 357 +stderr 358 +stderr 359 +stderr 360 +stderr 361 +stderr 362 +stderr 363 +stderr 364 +stderr 365 +stderr 366 +stderr 367 +stderr 368 +stderr 369 +stderr 370 +stderr 371 +stderr 372 +stderr 373 +stderr 374 +stderr 375 +stderr 376 +stderr 377 +stderr 378 +stderr 379 +stderr 380 +stderr 381 +stderr 382 +stderr 383 +stderr 384 +stderr 385 +stderr 386 +stderr 387 +stderr 388 +stderr 389 +stderr 390 +stderr 391 +stderr 392 +stderr 393 +stderr 394 +stderr 395 +stderr 396 +stderr 397 +stderr 398 +stderr 399 +stderr 400 +stderr 401 +stderr 402 +stderr 403 +stderr 404 +stderr 405 +stderr 406 +stderr 407 +stderr 408 +stderr 409 +stderr 410 +stderr 411 +stderr 412 +stderr 413 +stderr 414 +stderr 415 +stderr 416 +stderr 417 +stderr 418 +stderr 419 +stderr 420 +stderr 421 +stderr 422 +stderr 423 +stderr 424 +stderr 425 +stderr 426 +stderr 427 +stderr 428 +stderr 429 +stderr 430 +stderr 431 +stderr 432 +stderr 433 +stderr 434 +stderr 435 +stderr 436 +stderr 437 +stderr 438 +stderr 439 +stderr 440 +stderr 441 +stderr 442 +stderr 443 +stderr 444 +stderr 445 +stderr 446 +stderr 447 +stderr 448 +stderr 449 +stderr 450 +stderr 451 +stderr 452 +stderr 453 +stderr 454 +stderr 455 +stderr 456 +stderr 457 +stderr 458 +stderr 459 +stderr 460 +stderr 461 +stderr 462 +stderr 463 +stderr 464 +stderr 465 +stderr 466 +stderr 467 +stderr 468 +stderr 469 +stderr 470 +stderr 471 +stderr 472 +stderr 473 +stderr 474 +stderr 475 +stderr 476 +stderr 477 +stderr 478 +stderr 479 +stderr 480 +stderr 481 +stderr 482 +stderr 483 +stderr 484 +stderr 485 +stderr 486 +stderr 487 +stderr 488 +stderr 489 +stderr 490 +stderr 491 +stderr 492 +stderr 493 +stderr 494 +stderr 495 +stderr 496 +stderr 497 +stderr 498 +stderr 499 +stderr 500 +stderr 501 +stderr 502 +stderr 503 +stderr 504 +stderr 505 +stderr 506 +stderr 507 +stderr 508 +stderr 509 +stderr 510 +stderr 511 +stderr 512 +stderr 513 +stderr 514 +stderr 515 +stderr 516 +stderr 517 +stderr 518 +stderr 519 +stderr 520 +stderr 521 +stderr 522 +stderr 523 +stderr 524 +stderr 525 +stderr 526 +stderr 527 +stderr 528 +stderr 529 +stderr 530 +stderr 531 +stderr 532 +stderr 533 +stderr 534 +stderr 535 +stderr 536 +stderr 537 +stderr 538 +stderr 539 +stderr 540 +stderr 541 +stderr 542 +stderr 543 +stderr 544 +stderr 545 +stderr 546 +stderr 547 +stderr 548 +stderr 549 +stderr 550 +stderr 551 +stderr 552 +stderr 553 +stderr 554 +stderr 555 +stderr 556 +stderr 557 +stderr 558 +stderr 559 +stderr 560 +stderr 561 +stderr 562 +stderr 563 +stderr 564 +stderr 565 +stderr 566 +stderr 567 +stderr 568 +stderr 569 +stderr 570 +stderr 571 +stderr 572 +stderr 573 +stderr 574 +stderr 575 +stderr 576 +stderr 577 +stderr 578 +stderr 579 +stderr 580 +stderr 581 +stderr 582 +stderr 583 +stderr 584 +stderr 585 +stderr 586 +stderr 587 +stderr 588 +stderr 589 +stderr 590 +stderr 591 +stderr 592 +stderr 593 +stderr 594 +stderr 595 +stderr 596 +stderr 597 +stderr 598 +stderr 599 +stderr 600 +stderr 601 +stderr 602 +stderr 603 +stderr 604 +stderr 605 +stderr 606 +stderr 607 +stderr 608 +stderr 609 +stderr 610 +stderr 611 +stderr 612 +stderr 613 +stderr 614 +stderr 615 +stderr 616 +stderr 617 +stderr 618 +stderr 619 +stderr 620 +stderr 621 +stderr 622 +stderr 623 +stderr 624 +stderr 625 +stderr 626 +stderr 627 +stderr 628 +stderr 629 +stderr 630 +stderr 631 +stderr 632 +stderr 633 +stderr 634 +stderr 635 +stderr 636 +stderr 637 +stderr 638 +stderr 639 +stderr 640 +stderr 641 +stderr 642 +stderr 643 +stderr 644 +stderr 645 +stderr 646 +stderr 647 +stderr 648 +stderr 649 +stderr 650 +stderr 651 +stderr 652 +stderr 653 +stderr 654 +stderr 655 +stderr 656 +stderr 657 +stderr 658 +stderr 659 +stderr 660 +stderr 661 +stderr 662 +stderr 663 +stderr 664 +stderr 665 +stderr 666 +stderr 667 +stderr 668 +stderr 669 +stderr 670 +stderr 671 +stderr 672 +stderr 673 +stderr 674 +stderr 675 +stderr 676 +stderr 677 +stderr 678 +stderr 679 +stderr 680 +stderr 681 +stderr 682 +stderr 683 +stderr 684 +stderr 685 +stderr 686 +stderr 687 +stderr 688 +stderr 689 +stderr 690 +stderr 691 +stderr 692 +stderr 693 +stderr 694 +stderr 695 +stderr 696 +stderr 697 +stderr 698 +stderr 699 +stderr 700 +stderr 701 +stderr 702 +stderr 703 +stderr 704 +stderr 705 +stderr 706 +stderr 707 +stderr 708 +stderr 709 +stderr 710 +stderr 711 +stderr 712 +stderr 713 +stderr 714 +stderr 715 +stderr 716 +stderr 717 +stderr 718 +stderr 719 +stderr 720 +stderr 721 +stderr 722 +stderr 723 +stderr 724 +stderr 725 +stderr 726 +stderr 727 +stderr 728 +stderr 729 +stderr 730 +stderr 731 +stderr 732 +stderr 733 +stderr 734 +stderr 735 +stderr 736 +stderr 737 +stderr 738 +stderr 739 +stderr 740 +stderr 741 +stderr 742 +stderr 743 +stderr 744 +stderr 745 +stderr 746 +stderr 747 +stderr 748 +stderr 749 +stderr 750 +stderr 751 +stderr 752 +stderr 753 +stderr 754 +stderr 755 +stderr 756 +stderr 757 +stderr 758 +stderr 759 +stderr 760 +stderr 761 +stderr 762 +stderr 763 +stderr 764 +stderr 765 +stderr 766 +stderr 767 +stderr 768 +stderr 769 +stderr 770 +stderr 771 +stderr 772 +stderr 773 +stderr 774 +stderr 775 +stderr 776 +stderr 777 +stderr 778 +stderr 779 +stderr 780 +stderr 781 +stderr 782 +stderr 783 +stderr 784 +stderr 785 +stderr 786 +stderr 787 +stderr 788 +stderr 789 +stderr 790 +stderr 791 +stderr 792 +stderr 793 +stderr 794 +stderr 795 +stderr 796 +stderr 797 +stderr 798 +stderr 799 +stderr 800 +stderr 801 +stderr 802 +stderr 803 +stderr 804 +stderr 805 +stderr 806 +stderr 807 +stderr 808 +stderr 809 +stderr 810 +stderr 811 +stderr 812 +stderr 813 +stderr 814 +stderr 815 +stderr 816 +stderr 817 +stderr 818 +stderr 819 +stderr 820 +stderr 821 +stderr 822 +stderr 823 +stderr 824 +stderr 825 +stderr 826 +stderr 827 +stderr 828 +stderr 829 +stderr 830 +stderr 831 +stderr 832 +stderr 833 +stderr 834 +stderr 835 +stderr 836 +stderr 837 +stderr 838 +stderr 839 +stderr 840 +stderr 841 +stderr 842 +stderr 843 +stderr 844 +stderr 845 +stderr 846 +stderr 847 +stderr 848 +stderr 849 +stderr 850 +stderr 851 +stderr 852 +stderr 853 +stderr 854 +stderr 855 +stderr 856 +stderr 857 +stderr 858 +stderr 859 +stderr 860 +stderr 861 +stderr 862 +stderr 863 +stderr 864 +stderr 865 +stderr 866 +stderr 867 +stderr 868 +stderr 869 +stderr 870 +stderr 871 +stderr 872 +stderr 873 +stderr 874 +stderr 875 +stderr 876 +stderr 877 +stderr 878 +stderr 879 +stderr 880 +stderr 881 +stderr 882 +stderr 883 +stderr 884 +stderr 885 +stderr 886 +stderr 887 +stderr 888 +stderr 889 +stderr 890 +stderr 891 +stderr 892 +stderr 893 +stderr 894 +stderr 895 +stderr 896 +stderr 897 +stderr 898 +stderr 899 +stderr 900 +stderr 901 +stderr 902 +stderr 903 +stderr 904 +stderr 905 +stderr 906 +stderr 907 +stderr 908 +stderr 909 +stderr 910 +stderr 911 +stderr 912 +stderr 913 +stderr 914 +stderr 915 +stderr 916 +stderr 917 +stderr 918 +stderr 919 +stderr 920 +stderr 921 +stderr 922 +stderr 923 +stderr 924 +stderr 925 +stderr 926 +stderr 927 +stderr 928 +stderr 929 +stderr 930 +stderr 931 +stderr 932 +stderr 933 +stderr 934 +stderr 935 +stderr 936 +stderr 937 +stderr 938 +stderr 939 +stderr 940 +stderr 941 +stderr 942 +stderr 943 +stderr 944 +stderr 945 +stderr 946 +stderr 947 +stderr 948 +stderr 949 +stderr 950 +stderr 951 +stderr 952 +stderr 953 +stderr 954 +stderr 955 +stderr 956 +stderr 957 +stderr 958 +stderr 959 +stderr 960 +stderr 961 +stderr 962 +stderr 963 +stderr 964 +stderr 965 +stderr 966 +stderr 967 +stderr 968 +stderr 969 +stderr 970 +stderr 971 +stderr 972 +stderr 973 +stderr 974 +stderr 975 +stderr 976 +stderr 977 +stderr 978 +stderr 979 +stderr 980 +stderr 981 +stderr 982 +stderr 983 +stderr 984 +stderr 985 +stderr 986 +stderr 987 +stderr 988 +stderr 989 +stderr 990 +stderr 991 +stderr 992 +stderr 993 +stderr 994 +stderr 995 +stderr 996 +stderr 997 +stderr 998 +stderr 999 diff --git a/node_modules/exit/test/fixtures/1000-stdout-stderr.txt b/node_modules/exit/test/fixtures/1000-stdout-stderr.txt new file mode 100755 index 0000000..4fde2b4 --- /dev/null +++ b/node_modules/exit/test/fixtures/1000-stdout-stderr.txt @@ -0,0 +1,2000 @@ +stdout 0 +stderr 0 +stdout 1 +stderr 1 +stdout 2 +stderr 2 +stdout 3 +stderr 3 +stdout 4 +stderr 4 +stdout 5 +stderr 5 +stdout 6 +stderr 6 +stdout 7 +stderr 7 +stdout 8 +stderr 8 +stdout 9 +stderr 9 +stdout 10 +stderr 10 +stdout 11 +stderr 11 +stdout 12 +stderr 12 +stdout 13 +stderr 13 +stdout 14 +stderr 14 +stdout 15 +stderr 15 +stdout 16 +stderr 16 +stdout 17 +stderr 17 +stdout 18 +stderr 18 +stdout 19 +stderr 19 +stdout 20 +stderr 20 +stdout 21 +stderr 21 +stdout 22 +stderr 22 +stdout 23 +stderr 23 +stdout 24 +stderr 24 +stdout 25 +stderr 25 +stdout 26 +stderr 26 +stdout 27 +stderr 27 +stdout 28 +stderr 28 +stdout 29 +stderr 29 +stdout 30 +stderr 30 +stdout 31 +stderr 31 +stdout 32 +stderr 32 +stdout 33 +stderr 33 +stdout 34 +stderr 34 +stdout 35 +stderr 35 +stdout 36 +stderr 36 +stdout 37 +stderr 37 +stdout 38 +stderr 38 +stdout 39 +stderr 39 +stdout 40 +stderr 40 +stdout 41 +stderr 41 +stdout 42 +stderr 42 +stdout 43 +stderr 43 +stdout 44 +stderr 44 +stdout 45 +stderr 45 +stdout 46 +stderr 46 +stdout 47 +stderr 47 +stdout 48 +stderr 48 +stdout 49 +stderr 49 +stdout 50 +stderr 50 +stdout 51 +stderr 51 +stdout 52 +stderr 52 +stdout 53 +stderr 53 +stdout 54 +stderr 54 +stdout 55 +stderr 55 +stdout 56 +stderr 56 +stdout 57 +stderr 57 +stdout 58 +stderr 58 +stdout 59 +stderr 59 +stdout 60 +stderr 60 +stdout 61 +stderr 61 +stdout 62 +stderr 62 +stdout 63 +stderr 63 +stdout 64 +stderr 64 +stdout 65 +stderr 65 +stdout 66 +stderr 66 +stdout 67 +stderr 67 +stdout 68 +stderr 68 +stdout 69 +stderr 69 +stdout 70 +stderr 70 +stdout 71 +stderr 71 +stdout 72 +stderr 72 +stdout 73 +stderr 73 +stdout 74 +stderr 74 +stdout 75 +stderr 75 +stdout 76 +stderr 76 +stdout 77 +stderr 77 +stdout 78 +stderr 78 +stdout 79 +stderr 79 +stdout 80 +stderr 80 +stdout 81 +stderr 81 +stdout 82 +stderr 82 +stdout 83 +stderr 83 +stdout 84 +stderr 84 +stdout 85 +stderr 85 +stdout 86 +stderr 86 +stdout 87 +stderr 87 +stdout 88 +stderr 88 +stdout 89 +stderr 89 +stdout 90 +stderr 90 +stdout 91 +stderr 91 +stdout 92 +stderr 92 +stdout 93 +stderr 93 +stdout 94 +stderr 94 +stdout 95 +stderr 95 +stdout 96 +stderr 96 +stdout 97 +stderr 97 +stdout 98 +stderr 98 +stdout 99 +stderr 99 +stdout 100 +stderr 100 +stdout 101 +stderr 101 +stdout 102 +stderr 102 +stdout 103 +stderr 103 +stdout 104 +stderr 104 +stdout 105 +stderr 105 +stdout 106 +stderr 106 +stdout 107 +stderr 107 +stdout 108 +stderr 108 +stdout 109 +stderr 109 +stdout 110 +stderr 110 +stdout 111 +stderr 111 +stdout 112 +stderr 112 +stdout 113 +stderr 113 +stdout 114 +stderr 114 +stdout 115 +stderr 115 +stdout 116 +stderr 116 +stdout 117 +stderr 117 +stdout 118 +stderr 118 +stdout 119 +stderr 119 +stdout 120 +stderr 120 +stdout 121 +stderr 121 +stdout 122 +stderr 122 +stdout 123 +stderr 123 +stdout 124 +stderr 124 +stdout 125 +stderr 125 +stdout 126 +stderr 126 +stdout 127 +stderr 127 +stdout 128 +stderr 128 +stdout 129 +stderr 129 +stdout 130 +stderr 130 +stdout 131 +stderr 131 +stdout 132 +stderr 132 +stdout 133 +stderr 133 +stdout 134 +stderr 134 +stdout 135 +stderr 135 +stdout 136 +stderr 136 +stdout 137 +stderr 137 +stdout 138 +stderr 138 +stdout 139 +stderr 139 +stdout 140 +stderr 140 +stdout 141 +stderr 141 +stdout 142 +stderr 142 +stdout 143 +stderr 143 +stdout 144 +stderr 144 +stdout 145 +stderr 145 +stdout 146 +stderr 146 +stdout 147 +stderr 147 +stdout 148 +stderr 148 +stdout 149 +stderr 149 +stdout 150 +stderr 150 +stdout 151 +stderr 151 +stdout 152 +stderr 152 +stdout 153 +stderr 153 +stdout 154 +stderr 154 +stdout 155 +stderr 155 +stdout 156 +stderr 156 +stdout 157 +stderr 157 +stdout 158 +stderr 158 +stdout 159 +stderr 159 +stdout 160 +stderr 160 +stdout 161 +stderr 161 +stdout 162 +stderr 162 +stdout 163 +stderr 163 +stdout 164 +stderr 164 +stdout 165 +stderr 165 +stdout 166 +stderr 166 +stdout 167 +stderr 167 +stdout 168 +stderr 168 +stdout 169 +stderr 169 +stdout 170 +stderr 170 +stdout 171 +stderr 171 +stdout 172 +stderr 172 +stdout 173 +stderr 173 +stdout 174 +stderr 174 +stdout 175 +stderr 175 +stdout 176 +stderr 176 +stdout 177 +stderr 177 +stdout 178 +stderr 178 +stdout 179 +stderr 179 +stdout 180 +stderr 180 +stdout 181 +stderr 181 +stdout 182 +stderr 182 +stdout 183 +stderr 183 +stdout 184 +stderr 184 +stdout 185 +stderr 185 +stdout 186 +stderr 186 +stdout 187 +stderr 187 +stdout 188 +stderr 188 +stdout 189 +stderr 189 +stdout 190 +stderr 190 +stdout 191 +stderr 191 +stdout 192 +stderr 192 +stdout 193 +stderr 193 +stdout 194 +stderr 194 +stdout 195 +stderr 195 +stdout 196 +stderr 196 +stdout 197 +stderr 197 +stdout 198 +stderr 198 +stdout 199 +stderr 199 +stdout 200 +stderr 200 +stdout 201 +stderr 201 +stdout 202 +stderr 202 +stdout 203 +stderr 203 +stdout 204 +stderr 204 +stdout 205 +stderr 205 +stdout 206 +stderr 206 +stdout 207 +stderr 207 +stdout 208 +stderr 208 +stdout 209 +stderr 209 +stdout 210 +stderr 210 +stdout 211 +stderr 211 +stdout 212 +stderr 212 +stdout 213 +stderr 213 +stdout 214 +stderr 214 +stdout 215 +stderr 215 +stdout 216 +stderr 216 +stdout 217 +stderr 217 +stdout 218 +stderr 218 +stdout 219 +stderr 219 +stdout 220 +stderr 220 +stdout 221 +stderr 221 +stdout 222 +stderr 222 +stdout 223 +stderr 223 +stdout 224 +stderr 224 +stdout 225 +stderr 225 +stdout 226 +stderr 226 +stdout 227 +stderr 227 +stdout 228 +stderr 228 +stdout 229 +stderr 229 +stdout 230 +stderr 230 +stdout 231 +stderr 231 +stdout 232 +stderr 232 +stdout 233 +stderr 233 +stdout 234 +stderr 234 +stdout 235 +stderr 235 +stdout 236 +stderr 236 +stdout 237 +stderr 237 +stdout 238 +stderr 238 +stdout 239 +stderr 239 +stdout 240 +stderr 240 +stdout 241 +stderr 241 +stdout 242 +stderr 242 +stdout 243 +stderr 243 +stdout 244 +stderr 244 +stdout 245 +stderr 245 +stdout 246 +stderr 246 +stdout 247 +stderr 247 +stdout 248 +stderr 248 +stdout 249 +stderr 249 +stdout 250 +stderr 250 +stdout 251 +stderr 251 +stdout 252 +stderr 252 +stdout 253 +stderr 253 +stdout 254 +stderr 254 +stdout 255 +stderr 255 +stdout 256 +stderr 256 +stdout 257 +stderr 257 +stdout 258 +stderr 258 +stdout 259 +stderr 259 +stdout 260 +stderr 260 +stdout 261 +stderr 261 +stdout 262 +stderr 262 +stdout 263 +stderr 263 +stdout 264 +stderr 264 +stdout 265 +stderr 265 +stdout 266 +stderr 266 +stdout 267 +stderr 267 +stdout 268 +stderr 268 +stdout 269 +stderr 269 +stdout 270 +stderr 270 +stdout 271 +stderr 271 +stdout 272 +stderr 272 +stdout 273 +stderr 273 +stdout 274 +stderr 274 +stdout 275 +stderr 275 +stdout 276 +stderr 276 +stdout 277 +stderr 277 +stdout 278 +stderr 278 +stdout 279 +stderr 279 +stdout 280 +stderr 280 +stdout 281 +stderr 281 +stdout 282 +stderr 282 +stdout 283 +stderr 283 +stdout 284 +stderr 284 +stdout 285 +stderr 285 +stdout 286 +stderr 286 +stdout 287 +stderr 287 +stdout 288 +stderr 288 +stdout 289 +stderr 289 +stdout 290 +stderr 290 +stdout 291 +stderr 291 +stdout 292 +stderr 292 +stdout 293 +stderr 293 +stdout 294 +stderr 294 +stdout 295 +stderr 295 +stdout 296 +stderr 296 +stdout 297 +stderr 297 +stdout 298 +stderr 298 +stdout 299 +stderr 299 +stdout 300 +stderr 300 +stdout 301 +stderr 301 +stdout 302 +stderr 302 +stdout 303 +stderr 303 +stdout 304 +stderr 304 +stdout 305 +stderr 305 +stdout 306 +stderr 306 +stdout 307 +stderr 307 +stdout 308 +stderr 308 +stdout 309 +stderr 309 +stdout 310 +stderr 310 +stdout 311 +stderr 311 +stdout 312 +stderr 312 +stdout 313 +stderr 313 +stdout 314 +stderr 314 +stdout 315 +stderr 315 +stdout 316 +stderr 316 +stdout 317 +stderr 317 +stdout 318 +stderr 318 +stdout 319 +stderr 319 +stdout 320 +stderr 320 +stdout 321 +stderr 321 +stdout 322 +stderr 322 +stdout 323 +stderr 323 +stdout 324 +stderr 324 +stdout 325 +stderr 325 +stdout 326 +stderr 326 +stdout 327 +stderr 327 +stdout 328 +stderr 328 +stdout 329 +stderr 329 +stdout 330 +stderr 330 +stdout 331 +stderr 331 +stdout 332 +stderr 332 +stdout 333 +stderr 333 +stdout 334 +stderr 334 +stdout 335 +stderr 335 +stdout 336 +stderr 336 +stdout 337 +stderr 337 +stdout 338 +stderr 338 +stdout 339 +stderr 339 +stdout 340 +stderr 340 +stdout 341 +stderr 341 +stdout 342 +stderr 342 +stdout 343 +stderr 343 +stdout 344 +stderr 344 +stdout 345 +stderr 345 +stdout 346 +stderr 346 +stdout 347 +stderr 347 +stdout 348 +stderr 348 +stdout 349 +stderr 349 +stdout 350 +stderr 350 +stdout 351 +stderr 351 +stdout 352 +stderr 352 +stdout 353 +stderr 353 +stdout 354 +stderr 354 +stdout 355 +stderr 355 +stdout 356 +stderr 356 +stdout 357 +stderr 357 +stdout 358 +stderr 358 +stdout 359 +stderr 359 +stdout 360 +stderr 360 +stdout 361 +stderr 361 +stdout 362 +stderr 362 +stdout 363 +stderr 363 +stdout 364 +stderr 364 +stdout 365 +stderr 365 +stdout 366 +stderr 366 +stdout 367 +stderr 367 +stdout 368 +stderr 368 +stdout 369 +stderr 369 +stdout 370 +stderr 370 +stdout 371 +stderr 371 +stdout 372 +stderr 372 +stdout 373 +stderr 373 +stdout 374 +stderr 374 +stdout 375 +stderr 375 +stdout 376 +stderr 376 +stdout 377 +stderr 377 +stdout 378 +stderr 378 +stdout 379 +stderr 379 +stdout 380 +stderr 380 +stdout 381 +stderr 381 +stdout 382 +stderr 382 +stdout 383 +stderr 383 +stdout 384 +stderr 384 +stdout 385 +stderr 385 +stdout 386 +stderr 386 +stdout 387 +stderr 387 +stdout 388 +stderr 388 +stdout 389 +stderr 389 +stdout 390 +stderr 390 +stdout 391 +stderr 391 +stdout 392 +stderr 392 +stdout 393 +stderr 393 +stdout 394 +stderr 394 +stdout 395 +stderr 395 +stdout 396 +stderr 396 +stdout 397 +stderr 397 +stdout 398 +stderr 398 +stdout 399 +stderr 399 +stdout 400 +stderr 400 +stdout 401 +stderr 401 +stdout 402 +stderr 402 +stdout 403 +stderr 403 +stdout 404 +stderr 404 +stdout 405 +stderr 405 +stdout 406 +stderr 406 +stdout 407 +stderr 407 +stdout 408 +stderr 408 +stdout 409 +stderr 409 +stdout 410 +stderr 410 +stdout 411 +stderr 411 +stdout 412 +stderr 412 +stdout 413 +stderr 413 +stdout 414 +stderr 414 +stdout 415 +stderr 415 +stdout 416 +stderr 416 +stdout 417 +stderr 417 +stdout 418 +stderr 418 +stdout 419 +stderr 419 +stdout 420 +stderr 420 +stdout 421 +stderr 421 +stdout 422 +stderr 422 +stdout 423 +stderr 423 +stdout 424 +stderr 424 +stdout 425 +stderr 425 +stdout 426 +stderr 426 +stdout 427 +stderr 427 +stdout 428 +stderr 428 +stdout 429 +stderr 429 +stdout 430 +stderr 430 +stdout 431 +stderr 431 +stdout 432 +stderr 432 +stdout 433 +stderr 433 +stdout 434 +stderr 434 +stdout 435 +stderr 435 +stdout 436 +stderr 436 +stdout 437 +stderr 437 +stdout 438 +stderr 438 +stdout 439 +stderr 439 +stdout 440 +stderr 440 +stdout 441 +stderr 441 +stdout 442 +stderr 442 +stdout 443 +stderr 443 +stdout 444 +stderr 444 +stdout 445 +stderr 445 +stdout 446 +stderr 446 +stdout 447 +stderr 447 +stdout 448 +stderr 448 +stdout 449 +stderr 449 +stdout 450 +stderr 450 +stdout 451 +stderr 451 +stdout 452 +stderr 452 +stdout 453 +stderr 453 +stdout 454 +stderr 454 +stdout 455 +stderr 455 +stdout 456 +stderr 456 +stdout 457 +stderr 457 +stdout 458 +stderr 458 +stdout 459 +stderr 459 +stdout 460 +stderr 460 +stdout 461 +stderr 461 +stdout 462 +stderr 462 +stdout 463 +stderr 463 +stdout 464 +stderr 464 +stdout 465 +stderr 465 +stdout 466 +stderr 466 +stdout 467 +stderr 467 +stdout 468 +stderr 468 +stdout 469 +stderr 469 +stdout 470 +stderr 470 +stdout 471 +stderr 471 +stdout 472 +stderr 472 +stdout 473 +stderr 473 +stdout 474 +stderr 474 +stdout 475 +stderr 475 +stdout 476 +stderr 476 +stdout 477 +stderr 477 +stdout 478 +stderr 478 +stdout 479 +stderr 479 +stdout 480 +stderr 480 +stdout 481 +stderr 481 +stdout 482 +stderr 482 +stdout 483 +stderr 483 +stdout 484 +stderr 484 +stdout 485 +stderr 485 +stdout 486 +stderr 486 +stdout 487 +stderr 487 +stdout 488 +stderr 488 +stdout 489 +stderr 489 +stdout 490 +stderr 490 +stdout 491 +stderr 491 +stdout 492 +stderr 492 +stdout 493 +stderr 493 +stdout 494 +stderr 494 +stdout 495 +stderr 495 +stdout 496 +stderr 496 +stdout 497 +stderr 497 +stdout 498 +stderr 498 +stdout 499 +stderr 499 +stdout 500 +stderr 500 +stdout 501 +stderr 501 +stdout 502 +stderr 502 +stdout 503 +stderr 503 +stdout 504 +stderr 504 +stdout 505 +stderr 505 +stdout 506 +stderr 506 +stdout 507 +stderr 507 +stdout 508 +stderr 508 +stdout 509 +stderr 509 +stdout 510 +stderr 510 +stdout 511 +stderr 511 +stdout 512 +stderr 512 +stdout 513 +stderr 513 +stdout 514 +stderr 514 +stdout 515 +stderr 515 +stdout 516 +stderr 516 +stdout 517 +stderr 517 +stdout 518 +stderr 518 +stdout 519 +stderr 519 +stdout 520 +stderr 520 +stdout 521 +stderr 521 +stdout 522 +stderr 522 +stdout 523 +stderr 523 +stdout 524 +stderr 524 +stdout 525 +stderr 525 +stdout 526 +stderr 526 +stdout 527 +stderr 527 +stdout 528 +stderr 528 +stdout 529 +stderr 529 +stdout 530 +stderr 530 +stdout 531 +stderr 531 +stdout 532 +stderr 532 +stdout 533 +stderr 533 +stdout 534 +stderr 534 +stdout 535 +stderr 535 +stdout 536 +stderr 536 +stdout 537 +stderr 537 +stdout 538 +stderr 538 +stdout 539 +stderr 539 +stdout 540 +stderr 540 +stdout 541 +stderr 541 +stdout 542 +stderr 542 +stdout 543 +stderr 543 +stdout 544 +stderr 544 +stdout 545 +stderr 545 +stdout 546 +stderr 546 +stdout 547 +stderr 547 +stdout 548 +stderr 548 +stdout 549 +stderr 549 +stdout 550 +stderr 550 +stdout 551 +stderr 551 +stdout 552 +stderr 552 +stdout 553 +stderr 553 +stdout 554 +stderr 554 +stdout 555 +stderr 555 +stdout 556 +stderr 556 +stdout 557 +stderr 557 +stdout 558 +stderr 558 +stdout 559 +stderr 559 +stdout 560 +stderr 560 +stdout 561 +stderr 561 +stdout 562 +stderr 562 +stdout 563 +stderr 563 +stdout 564 +stderr 564 +stdout 565 +stderr 565 +stdout 566 +stderr 566 +stdout 567 +stderr 567 +stdout 568 +stderr 568 +stdout 569 +stderr 569 +stdout 570 +stderr 570 +stdout 571 +stderr 571 +stdout 572 +stderr 572 +stdout 573 +stderr 573 +stdout 574 +stderr 574 +stdout 575 +stderr 575 +stdout 576 +stderr 576 +stdout 577 +stderr 577 +stdout 578 +stderr 578 +stdout 579 +stderr 579 +stdout 580 +stderr 580 +stdout 581 +stderr 581 +stdout 582 +stderr 582 +stdout 583 +stderr 583 +stdout 584 +stderr 584 +stdout 585 +stderr 585 +stdout 586 +stderr 586 +stdout 587 +stderr 587 +stdout 588 +stderr 588 +stdout 589 +stderr 589 +stdout 590 +stderr 590 +stdout 591 +stderr 591 +stdout 592 +stderr 592 +stdout 593 +stderr 593 +stdout 594 +stderr 594 +stdout 595 +stderr 595 +stdout 596 +stderr 596 +stdout 597 +stderr 597 +stdout 598 +stderr 598 +stdout 599 +stderr 599 +stdout 600 +stderr 600 +stdout 601 +stderr 601 +stdout 602 +stderr 602 +stdout 603 +stderr 603 +stdout 604 +stderr 604 +stdout 605 +stderr 605 +stdout 606 +stderr 606 +stdout 607 +stderr 607 +stdout 608 +stderr 608 +stdout 609 +stderr 609 +stdout 610 +stderr 610 +stdout 611 +stderr 611 +stdout 612 +stderr 612 +stdout 613 +stderr 613 +stdout 614 +stderr 614 +stdout 615 +stderr 615 +stdout 616 +stderr 616 +stdout 617 +stderr 617 +stdout 618 +stderr 618 +stdout 619 +stderr 619 +stdout 620 +stderr 620 +stdout 621 +stderr 621 +stdout 622 +stderr 622 +stdout 623 +stderr 623 +stdout 624 +stderr 624 +stdout 625 +stderr 625 +stdout 626 +stderr 626 +stdout 627 +stderr 627 +stdout 628 +stderr 628 +stdout 629 +stderr 629 +stdout 630 +stderr 630 +stdout 631 +stderr 631 +stdout 632 +stderr 632 +stdout 633 +stderr 633 +stdout 634 +stderr 634 +stdout 635 +stderr 635 +stdout 636 +stderr 636 +stdout 637 +stderr 637 +stdout 638 +stderr 638 +stdout 639 +stderr 639 +stdout 640 +stderr 640 +stdout 641 +stderr 641 +stdout 642 +stderr 642 +stdout 643 +stderr 643 +stdout 644 +stderr 644 +stdout 645 +stderr 645 +stdout 646 +stderr 646 +stdout 647 +stderr 647 +stdout 648 +stderr 648 +stdout 649 +stderr 649 +stdout 650 +stderr 650 +stdout 651 +stderr 651 +stdout 652 +stderr 652 +stdout 653 +stderr 653 +stdout 654 +stderr 654 +stdout 655 +stderr 655 +stdout 656 +stderr 656 +stdout 657 +stderr 657 +stdout 658 +stderr 658 +stdout 659 +stderr 659 +stdout 660 +stderr 660 +stdout 661 +stderr 661 +stdout 662 +stderr 662 +stdout 663 +stderr 663 +stdout 664 +stderr 664 +stdout 665 +stderr 665 +stdout 666 +stderr 666 +stdout 667 +stderr 667 +stdout 668 +stderr 668 +stdout 669 +stderr 669 +stdout 670 +stderr 670 +stdout 671 +stderr 671 +stdout 672 +stderr 672 +stdout 673 +stderr 673 +stdout 674 +stderr 674 +stdout 675 +stderr 675 +stdout 676 +stderr 676 +stdout 677 +stderr 677 +stdout 678 +stderr 678 +stdout 679 +stderr 679 +stdout 680 +stderr 680 +stdout 681 +stderr 681 +stdout 682 +stderr 682 +stdout 683 +stderr 683 +stdout 684 +stderr 684 +stdout 685 +stderr 685 +stdout 686 +stderr 686 +stdout 687 +stderr 687 +stdout 688 +stderr 688 +stdout 689 +stderr 689 +stdout 690 +stderr 690 +stdout 691 +stderr 691 +stdout 692 +stderr 692 +stdout 693 +stderr 693 +stdout 694 +stderr 694 +stdout 695 +stderr 695 +stdout 696 +stderr 696 +stdout 697 +stderr 697 +stdout 698 +stderr 698 +stdout 699 +stderr 699 +stdout 700 +stderr 700 +stdout 701 +stderr 701 +stdout 702 +stderr 702 +stdout 703 +stderr 703 +stdout 704 +stderr 704 +stdout 705 +stderr 705 +stdout 706 +stderr 706 +stdout 707 +stderr 707 +stdout 708 +stderr 708 +stdout 709 +stderr 709 +stdout 710 +stderr 710 +stdout 711 +stderr 711 +stdout 712 +stderr 712 +stdout 713 +stderr 713 +stdout 714 +stderr 714 +stdout 715 +stderr 715 +stdout 716 +stderr 716 +stdout 717 +stderr 717 +stdout 718 +stderr 718 +stdout 719 +stderr 719 +stdout 720 +stderr 720 +stdout 721 +stderr 721 +stdout 722 +stderr 722 +stdout 723 +stderr 723 +stdout 724 +stderr 724 +stdout 725 +stderr 725 +stdout 726 +stderr 726 +stdout 727 +stderr 727 +stdout 728 +stderr 728 +stdout 729 +stderr 729 +stdout 730 +stderr 730 +stdout 731 +stderr 731 +stdout 732 +stderr 732 +stdout 733 +stderr 733 +stdout 734 +stderr 734 +stdout 735 +stderr 735 +stdout 736 +stderr 736 +stdout 737 +stderr 737 +stdout 738 +stderr 738 +stdout 739 +stderr 739 +stdout 740 +stderr 740 +stdout 741 +stderr 741 +stdout 742 +stderr 742 +stdout 743 +stderr 743 +stdout 744 +stderr 744 +stdout 745 +stderr 745 +stdout 746 +stderr 746 +stdout 747 +stderr 747 +stdout 748 +stderr 748 +stdout 749 +stderr 749 +stdout 750 +stderr 750 +stdout 751 +stderr 751 +stdout 752 +stderr 752 +stdout 753 +stderr 753 +stdout 754 +stderr 754 +stdout 755 +stderr 755 +stdout 756 +stderr 756 +stdout 757 +stderr 757 +stdout 758 +stderr 758 +stdout 759 +stderr 759 +stdout 760 +stderr 760 +stdout 761 +stderr 761 +stdout 762 +stderr 762 +stdout 763 +stderr 763 +stdout 764 +stderr 764 +stdout 765 +stderr 765 +stdout 766 +stderr 766 +stdout 767 +stderr 767 +stdout 768 +stderr 768 +stdout 769 +stderr 769 +stdout 770 +stderr 770 +stdout 771 +stderr 771 +stdout 772 +stderr 772 +stdout 773 +stderr 773 +stdout 774 +stderr 774 +stdout 775 +stderr 775 +stdout 776 +stderr 776 +stdout 777 +stderr 777 +stdout 778 +stderr 778 +stdout 779 +stderr 779 +stdout 780 +stderr 780 +stdout 781 +stderr 781 +stdout 782 +stderr 782 +stdout 783 +stderr 783 +stdout 784 +stderr 784 +stdout 785 +stderr 785 +stdout 786 +stderr 786 +stdout 787 +stderr 787 +stdout 788 +stderr 788 +stdout 789 +stderr 789 +stdout 790 +stderr 790 +stdout 791 +stderr 791 +stdout 792 +stderr 792 +stdout 793 +stderr 793 +stdout 794 +stderr 794 +stdout 795 +stderr 795 +stdout 796 +stderr 796 +stdout 797 +stderr 797 +stdout 798 +stderr 798 +stdout 799 +stderr 799 +stdout 800 +stderr 800 +stdout 801 +stderr 801 +stdout 802 +stderr 802 +stdout 803 +stderr 803 +stdout 804 +stderr 804 +stdout 805 +stderr 805 +stdout 806 +stderr 806 +stdout 807 +stderr 807 +stdout 808 +stderr 808 +stdout 809 +stderr 809 +stdout 810 +stderr 810 +stdout 811 +stderr 811 +stdout 812 +stderr 812 +stdout 813 +stderr 813 +stdout 814 +stderr 814 +stdout 815 +stderr 815 +stdout 816 +stderr 816 +stdout 817 +stderr 817 +stdout 818 +stderr 818 +stdout 819 +stderr 819 +stdout 820 +stderr 820 +stdout 821 +stderr 821 +stdout 822 +stderr 822 +stdout 823 +stderr 823 +stdout 824 +stderr 824 +stdout 825 +stderr 825 +stdout 826 +stderr 826 +stdout 827 +stderr 827 +stdout 828 +stderr 828 +stdout 829 +stderr 829 +stdout 830 +stderr 830 +stdout 831 +stderr 831 +stdout 832 +stderr 832 +stdout 833 +stderr 833 +stdout 834 +stderr 834 +stdout 835 +stderr 835 +stdout 836 +stderr 836 +stdout 837 +stderr 837 +stdout 838 +stderr 838 +stdout 839 +stderr 839 +stdout 840 +stderr 840 +stdout 841 +stderr 841 +stdout 842 +stderr 842 +stdout 843 +stderr 843 +stdout 844 +stderr 844 +stdout 845 +stderr 845 +stdout 846 +stderr 846 +stdout 847 +stderr 847 +stdout 848 +stderr 848 +stdout 849 +stderr 849 +stdout 850 +stderr 850 +stdout 851 +stderr 851 +stdout 852 +stderr 852 +stdout 853 +stderr 853 +stdout 854 +stderr 854 +stdout 855 +stderr 855 +stdout 856 +stderr 856 +stdout 857 +stderr 857 +stdout 858 +stderr 858 +stdout 859 +stderr 859 +stdout 860 +stderr 860 +stdout 861 +stderr 861 +stdout 862 +stderr 862 +stdout 863 +stderr 863 +stdout 864 +stderr 864 +stdout 865 +stderr 865 +stdout 866 +stderr 866 +stdout 867 +stderr 867 +stdout 868 +stderr 868 +stdout 869 +stderr 869 +stdout 870 +stderr 870 +stdout 871 +stderr 871 +stdout 872 +stderr 872 +stdout 873 +stderr 873 +stdout 874 +stderr 874 +stdout 875 +stderr 875 +stdout 876 +stderr 876 +stdout 877 +stderr 877 +stdout 878 +stderr 878 +stdout 879 +stderr 879 +stdout 880 +stderr 880 +stdout 881 +stderr 881 +stdout 882 +stderr 882 +stdout 883 +stderr 883 +stdout 884 +stderr 884 +stdout 885 +stderr 885 +stdout 886 +stderr 886 +stdout 887 +stderr 887 +stdout 888 +stderr 888 +stdout 889 +stderr 889 +stdout 890 +stderr 890 +stdout 891 +stderr 891 +stdout 892 +stderr 892 +stdout 893 +stderr 893 +stdout 894 +stderr 894 +stdout 895 +stderr 895 +stdout 896 +stderr 896 +stdout 897 +stderr 897 +stdout 898 +stderr 898 +stdout 899 +stderr 899 +stdout 900 +stderr 900 +stdout 901 +stderr 901 +stdout 902 +stderr 902 +stdout 903 +stderr 903 +stdout 904 +stderr 904 +stdout 905 +stderr 905 +stdout 906 +stderr 906 +stdout 907 +stderr 907 +stdout 908 +stderr 908 +stdout 909 +stderr 909 +stdout 910 +stderr 910 +stdout 911 +stderr 911 +stdout 912 +stderr 912 +stdout 913 +stderr 913 +stdout 914 +stderr 914 +stdout 915 +stderr 915 +stdout 916 +stderr 916 +stdout 917 +stderr 917 +stdout 918 +stderr 918 +stdout 919 +stderr 919 +stdout 920 +stderr 920 +stdout 921 +stderr 921 +stdout 922 +stderr 922 +stdout 923 +stderr 923 +stdout 924 +stderr 924 +stdout 925 +stderr 925 +stdout 926 +stderr 926 +stdout 927 +stderr 927 +stdout 928 +stderr 928 +stdout 929 +stderr 929 +stdout 930 +stderr 930 +stdout 931 +stderr 931 +stdout 932 +stderr 932 +stdout 933 +stderr 933 +stdout 934 +stderr 934 +stdout 935 +stderr 935 +stdout 936 +stderr 936 +stdout 937 +stderr 937 +stdout 938 +stderr 938 +stdout 939 +stderr 939 +stdout 940 +stderr 940 +stdout 941 +stderr 941 +stdout 942 +stderr 942 +stdout 943 +stderr 943 +stdout 944 +stderr 944 +stdout 945 +stderr 945 +stdout 946 +stderr 946 +stdout 947 +stderr 947 +stdout 948 +stderr 948 +stdout 949 +stderr 949 +stdout 950 +stderr 950 +stdout 951 +stderr 951 +stdout 952 +stderr 952 +stdout 953 +stderr 953 +stdout 954 +stderr 954 +stdout 955 +stderr 955 +stdout 956 +stderr 956 +stdout 957 +stderr 957 +stdout 958 +stderr 958 +stdout 959 +stderr 959 +stdout 960 +stderr 960 +stdout 961 +stderr 961 +stdout 962 +stderr 962 +stdout 963 +stderr 963 +stdout 964 +stderr 964 +stdout 965 +stderr 965 +stdout 966 +stderr 966 +stdout 967 +stderr 967 +stdout 968 +stderr 968 +stdout 969 +stderr 969 +stdout 970 +stderr 970 +stdout 971 +stderr 971 +stdout 972 +stderr 972 +stdout 973 +stderr 973 +stdout 974 +stderr 974 +stdout 975 +stderr 975 +stdout 976 +stderr 976 +stdout 977 +stderr 977 +stdout 978 +stderr 978 +stdout 979 +stderr 979 +stdout 980 +stderr 980 +stdout 981 +stderr 981 +stdout 982 +stderr 982 +stdout 983 +stderr 983 +stdout 984 +stderr 984 +stdout 985 +stderr 985 +stdout 986 +stderr 986 +stdout 987 +stderr 987 +stdout 988 +stderr 988 +stdout 989 +stderr 989 +stdout 990 +stderr 990 +stdout 991 +stderr 991 +stdout 992 +stderr 992 +stdout 993 +stderr 993 +stdout 994 +stderr 994 +stdout 995 +stderr 995 +stdout 996 +stderr 996 +stdout 997 +stderr 997 +stdout 998 +stderr 998 +stdout 999 +stderr 999 diff --git a/node_modules/exit/test/fixtures/1000-stdout.txt b/node_modules/exit/test/fixtures/1000-stdout.txt new file mode 100755 index 0000000..d3649d0 --- /dev/null +++ b/node_modules/exit/test/fixtures/1000-stdout.txt @@ -0,0 +1,1000 @@ +stdout 0 +stdout 1 +stdout 2 +stdout 3 +stdout 4 +stdout 5 +stdout 6 +stdout 7 +stdout 8 +stdout 9 +stdout 10 +stdout 11 +stdout 12 +stdout 13 +stdout 14 +stdout 15 +stdout 16 +stdout 17 +stdout 18 +stdout 19 +stdout 20 +stdout 21 +stdout 22 +stdout 23 +stdout 24 +stdout 25 +stdout 26 +stdout 27 +stdout 28 +stdout 29 +stdout 30 +stdout 31 +stdout 32 +stdout 33 +stdout 34 +stdout 35 +stdout 36 +stdout 37 +stdout 38 +stdout 39 +stdout 40 +stdout 41 +stdout 42 +stdout 43 +stdout 44 +stdout 45 +stdout 46 +stdout 47 +stdout 48 +stdout 49 +stdout 50 +stdout 51 +stdout 52 +stdout 53 +stdout 54 +stdout 55 +stdout 56 +stdout 57 +stdout 58 +stdout 59 +stdout 60 +stdout 61 +stdout 62 +stdout 63 +stdout 64 +stdout 65 +stdout 66 +stdout 67 +stdout 68 +stdout 69 +stdout 70 +stdout 71 +stdout 72 +stdout 73 +stdout 74 +stdout 75 +stdout 76 +stdout 77 +stdout 78 +stdout 79 +stdout 80 +stdout 81 +stdout 82 +stdout 83 +stdout 84 +stdout 85 +stdout 86 +stdout 87 +stdout 88 +stdout 89 +stdout 90 +stdout 91 +stdout 92 +stdout 93 +stdout 94 +stdout 95 +stdout 96 +stdout 97 +stdout 98 +stdout 99 +stdout 100 +stdout 101 +stdout 102 +stdout 103 +stdout 104 +stdout 105 +stdout 106 +stdout 107 +stdout 108 +stdout 109 +stdout 110 +stdout 111 +stdout 112 +stdout 113 +stdout 114 +stdout 115 +stdout 116 +stdout 117 +stdout 118 +stdout 119 +stdout 120 +stdout 121 +stdout 122 +stdout 123 +stdout 124 +stdout 125 +stdout 126 +stdout 127 +stdout 128 +stdout 129 +stdout 130 +stdout 131 +stdout 132 +stdout 133 +stdout 134 +stdout 135 +stdout 136 +stdout 137 +stdout 138 +stdout 139 +stdout 140 +stdout 141 +stdout 142 +stdout 143 +stdout 144 +stdout 145 +stdout 146 +stdout 147 +stdout 148 +stdout 149 +stdout 150 +stdout 151 +stdout 152 +stdout 153 +stdout 154 +stdout 155 +stdout 156 +stdout 157 +stdout 158 +stdout 159 +stdout 160 +stdout 161 +stdout 162 +stdout 163 +stdout 164 +stdout 165 +stdout 166 +stdout 167 +stdout 168 +stdout 169 +stdout 170 +stdout 171 +stdout 172 +stdout 173 +stdout 174 +stdout 175 +stdout 176 +stdout 177 +stdout 178 +stdout 179 +stdout 180 +stdout 181 +stdout 182 +stdout 183 +stdout 184 +stdout 185 +stdout 186 +stdout 187 +stdout 188 +stdout 189 +stdout 190 +stdout 191 +stdout 192 +stdout 193 +stdout 194 +stdout 195 +stdout 196 +stdout 197 +stdout 198 +stdout 199 +stdout 200 +stdout 201 +stdout 202 +stdout 203 +stdout 204 +stdout 205 +stdout 206 +stdout 207 +stdout 208 +stdout 209 +stdout 210 +stdout 211 +stdout 212 +stdout 213 +stdout 214 +stdout 215 +stdout 216 +stdout 217 +stdout 218 +stdout 219 +stdout 220 +stdout 221 +stdout 222 +stdout 223 +stdout 224 +stdout 225 +stdout 226 +stdout 227 +stdout 228 +stdout 229 +stdout 230 +stdout 231 +stdout 232 +stdout 233 +stdout 234 +stdout 235 +stdout 236 +stdout 237 +stdout 238 +stdout 239 +stdout 240 +stdout 241 +stdout 242 +stdout 243 +stdout 244 +stdout 245 +stdout 246 +stdout 247 +stdout 248 +stdout 249 +stdout 250 +stdout 251 +stdout 252 +stdout 253 +stdout 254 +stdout 255 +stdout 256 +stdout 257 +stdout 258 +stdout 259 +stdout 260 +stdout 261 +stdout 262 +stdout 263 +stdout 264 +stdout 265 +stdout 266 +stdout 267 +stdout 268 +stdout 269 +stdout 270 +stdout 271 +stdout 272 +stdout 273 +stdout 274 +stdout 275 +stdout 276 +stdout 277 +stdout 278 +stdout 279 +stdout 280 +stdout 281 +stdout 282 +stdout 283 +stdout 284 +stdout 285 +stdout 286 +stdout 287 +stdout 288 +stdout 289 +stdout 290 +stdout 291 +stdout 292 +stdout 293 +stdout 294 +stdout 295 +stdout 296 +stdout 297 +stdout 298 +stdout 299 +stdout 300 +stdout 301 +stdout 302 +stdout 303 +stdout 304 +stdout 305 +stdout 306 +stdout 307 +stdout 308 +stdout 309 +stdout 310 +stdout 311 +stdout 312 +stdout 313 +stdout 314 +stdout 315 +stdout 316 +stdout 317 +stdout 318 +stdout 319 +stdout 320 +stdout 321 +stdout 322 +stdout 323 +stdout 324 +stdout 325 +stdout 326 +stdout 327 +stdout 328 +stdout 329 +stdout 330 +stdout 331 +stdout 332 +stdout 333 +stdout 334 +stdout 335 +stdout 336 +stdout 337 +stdout 338 +stdout 339 +stdout 340 +stdout 341 +stdout 342 +stdout 343 +stdout 344 +stdout 345 +stdout 346 +stdout 347 +stdout 348 +stdout 349 +stdout 350 +stdout 351 +stdout 352 +stdout 353 +stdout 354 +stdout 355 +stdout 356 +stdout 357 +stdout 358 +stdout 359 +stdout 360 +stdout 361 +stdout 362 +stdout 363 +stdout 364 +stdout 365 +stdout 366 +stdout 367 +stdout 368 +stdout 369 +stdout 370 +stdout 371 +stdout 372 +stdout 373 +stdout 374 +stdout 375 +stdout 376 +stdout 377 +stdout 378 +stdout 379 +stdout 380 +stdout 381 +stdout 382 +stdout 383 +stdout 384 +stdout 385 +stdout 386 +stdout 387 +stdout 388 +stdout 389 +stdout 390 +stdout 391 +stdout 392 +stdout 393 +stdout 394 +stdout 395 +stdout 396 +stdout 397 +stdout 398 +stdout 399 +stdout 400 +stdout 401 +stdout 402 +stdout 403 +stdout 404 +stdout 405 +stdout 406 +stdout 407 +stdout 408 +stdout 409 +stdout 410 +stdout 411 +stdout 412 +stdout 413 +stdout 414 +stdout 415 +stdout 416 +stdout 417 +stdout 418 +stdout 419 +stdout 420 +stdout 421 +stdout 422 +stdout 423 +stdout 424 +stdout 425 +stdout 426 +stdout 427 +stdout 428 +stdout 429 +stdout 430 +stdout 431 +stdout 432 +stdout 433 +stdout 434 +stdout 435 +stdout 436 +stdout 437 +stdout 438 +stdout 439 +stdout 440 +stdout 441 +stdout 442 +stdout 443 +stdout 444 +stdout 445 +stdout 446 +stdout 447 +stdout 448 +stdout 449 +stdout 450 +stdout 451 +stdout 452 +stdout 453 +stdout 454 +stdout 455 +stdout 456 +stdout 457 +stdout 458 +stdout 459 +stdout 460 +stdout 461 +stdout 462 +stdout 463 +stdout 464 +stdout 465 +stdout 466 +stdout 467 +stdout 468 +stdout 469 +stdout 470 +stdout 471 +stdout 472 +stdout 473 +stdout 474 +stdout 475 +stdout 476 +stdout 477 +stdout 478 +stdout 479 +stdout 480 +stdout 481 +stdout 482 +stdout 483 +stdout 484 +stdout 485 +stdout 486 +stdout 487 +stdout 488 +stdout 489 +stdout 490 +stdout 491 +stdout 492 +stdout 493 +stdout 494 +stdout 495 +stdout 496 +stdout 497 +stdout 498 +stdout 499 +stdout 500 +stdout 501 +stdout 502 +stdout 503 +stdout 504 +stdout 505 +stdout 506 +stdout 507 +stdout 508 +stdout 509 +stdout 510 +stdout 511 +stdout 512 +stdout 513 +stdout 514 +stdout 515 +stdout 516 +stdout 517 +stdout 518 +stdout 519 +stdout 520 +stdout 521 +stdout 522 +stdout 523 +stdout 524 +stdout 525 +stdout 526 +stdout 527 +stdout 528 +stdout 529 +stdout 530 +stdout 531 +stdout 532 +stdout 533 +stdout 534 +stdout 535 +stdout 536 +stdout 537 +stdout 538 +stdout 539 +stdout 540 +stdout 541 +stdout 542 +stdout 543 +stdout 544 +stdout 545 +stdout 546 +stdout 547 +stdout 548 +stdout 549 +stdout 550 +stdout 551 +stdout 552 +stdout 553 +stdout 554 +stdout 555 +stdout 556 +stdout 557 +stdout 558 +stdout 559 +stdout 560 +stdout 561 +stdout 562 +stdout 563 +stdout 564 +stdout 565 +stdout 566 +stdout 567 +stdout 568 +stdout 569 +stdout 570 +stdout 571 +stdout 572 +stdout 573 +stdout 574 +stdout 575 +stdout 576 +stdout 577 +stdout 578 +stdout 579 +stdout 580 +stdout 581 +stdout 582 +stdout 583 +stdout 584 +stdout 585 +stdout 586 +stdout 587 +stdout 588 +stdout 589 +stdout 590 +stdout 591 +stdout 592 +stdout 593 +stdout 594 +stdout 595 +stdout 596 +stdout 597 +stdout 598 +stdout 599 +stdout 600 +stdout 601 +stdout 602 +stdout 603 +stdout 604 +stdout 605 +stdout 606 +stdout 607 +stdout 608 +stdout 609 +stdout 610 +stdout 611 +stdout 612 +stdout 613 +stdout 614 +stdout 615 +stdout 616 +stdout 617 +stdout 618 +stdout 619 +stdout 620 +stdout 621 +stdout 622 +stdout 623 +stdout 624 +stdout 625 +stdout 626 +stdout 627 +stdout 628 +stdout 629 +stdout 630 +stdout 631 +stdout 632 +stdout 633 +stdout 634 +stdout 635 +stdout 636 +stdout 637 +stdout 638 +stdout 639 +stdout 640 +stdout 641 +stdout 642 +stdout 643 +stdout 644 +stdout 645 +stdout 646 +stdout 647 +stdout 648 +stdout 649 +stdout 650 +stdout 651 +stdout 652 +stdout 653 +stdout 654 +stdout 655 +stdout 656 +stdout 657 +stdout 658 +stdout 659 +stdout 660 +stdout 661 +stdout 662 +stdout 663 +stdout 664 +stdout 665 +stdout 666 +stdout 667 +stdout 668 +stdout 669 +stdout 670 +stdout 671 +stdout 672 +stdout 673 +stdout 674 +stdout 675 +stdout 676 +stdout 677 +stdout 678 +stdout 679 +stdout 680 +stdout 681 +stdout 682 +stdout 683 +stdout 684 +stdout 685 +stdout 686 +stdout 687 +stdout 688 +stdout 689 +stdout 690 +stdout 691 +stdout 692 +stdout 693 +stdout 694 +stdout 695 +stdout 696 +stdout 697 +stdout 698 +stdout 699 +stdout 700 +stdout 701 +stdout 702 +stdout 703 +stdout 704 +stdout 705 +stdout 706 +stdout 707 +stdout 708 +stdout 709 +stdout 710 +stdout 711 +stdout 712 +stdout 713 +stdout 714 +stdout 715 +stdout 716 +stdout 717 +stdout 718 +stdout 719 +stdout 720 +stdout 721 +stdout 722 +stdout 723 +stdout 724 +stdout 725 +stdout 726 +stdout 727 +stdout 728 +stdout 729 +stdout 730 +stdout 731 +stdout 732 +stdout 733 +stdout 734 +stdout 735 +stdout 736 +stdout 737 +stdout 738 +stdout 739 +stdout 740 +stdout 741 +stdout 742 +stdout 743 +stdout 744 +stdout 745 +stdout 746 +stdout 747 +stdout 748 +stdout 749 +stdout 750 +stdout 751 +stdout 752 +stdout 753 +stdout 754 +stdout 755 +stdout 756 +stdout 757 +stdout 758 +stdout 759 +stdout 760 +stdout 761 +stdout 762 +stdout 763 +stdout 764 +stdout 765 +stdout 766 +stdout 767 +stdout 768 +stdout 769 +stdout 770 +stdout 771 +stdout 772 +stdout 773 +stdout 774 +stdout 775 +stdout 776 +stdout 777 +stdout 778 +stdout 779 +stdout 780 +stdout 781 +stdout 782 +stdout 783 +stdout 784 +stdout 785 +stdout 786 +stdout 787 +stdout 788 +stdout 789 +stdout 790 +stdout 791 +stdout 792 +stdout 793 +stdout 794 +stdout 795 +stdout 796 +stdout 797 +stdout 798 +stdout 799 +stdout 800 +stdout 801 +stdout 802 +stdout 803 +stdout 804 +stdout 805 +stdout 806 +stdout 807 +stdout 808 +stdout 809 +stdout 810 +stdout 811 +stdout 812 +stdout 813 +stdout 814 +stdout 815 +stdout 816 +stdout 817 +stdout 818 +stdout 819 +stdout 820 +stdout 821 +stdout 822 +stdout 823 +stdout 824 +stdout 825 +stdout 826 +stdout 827 +stdout 828 +stdout 829 +stdout 830 +stdout 831 +stdout 832 +stdout 833 +stdout 834 +stdout 835 +stdout 836 +stdout 837 +stdout 838 +stdout 839 +stdout 840 +stdout 841 +stdout 842 +stdout 843 +stdout 844 +stdout 845 +stdout 846 +stdout 847 +stdout 848 +stdout 849 +stdout 850 +stdout 851 +stdout 852 +stdout 853 +stdout 854 +stdout 855 +stdout 856 +stdout 857 +stdout 858 +stdout 859 +stdout 860 +stdout 861 +stdout 862 +stdout 863 +stdout 864 +stdout 865 +stdout 866 +stdout 867 +stdout 868 +stdout 869 +stdout 870 +stdout 871 +stdout 872 +stdout 873 +stdout 874 +stdout 875 +stdout 876 +stdout 877 +stdout 878 +stdout 879 +stdout 880 +stdout 881 +stdout 882 +stdout 883 +stdout 884 +stdout 885 +stdout 886 +stdout 887 +stdout 888 +stdout 889 +stdout 890 +stdout 891 +stdout 892 +stdout 893 +stdout 894 +stdout 895 +stdout 896 +stdout 897 +stdout 898 +stdout 899 +stdout 900 +stdout 901 +stdout 902 +stdout 903 +stdout 904 +stdout 905 +stdout 906 +stdout 907 +stdout 908 +stdout 909 +stdout 910 +stdout 911 +stdout 912 +stdout 913 +stdout 914 +stdout 915 +stdout 916 +stdout 917 +stdout 918 +stdout 919 +stdout 920 +stdout 921 +stdout 922 +stdout 923 +stdout 924 +stdout 925 +stdout 926 +stdout 927 +stdout 928 +stdout 929 +stdout 930 +stdout 931 +stdout 932 +stdout 933 +stdout 934 +stdout 935 +stdout 936 +stdout 937 +stdout 938 +stdout 939 +stdout 940 +stdout 941 +stdout 942 +stdout 943 +stdout 944 +stdout 945 +stdout 946 +stdout 947 +stdout 948 +stdout 949 +stdout 950 +stdout 951 +stdout 952 +stdout 953 +stdout 954 +stdout 955 +stdout 956 +stdout 957 +stdout 958 +stdout 959 +stdout 960 +stdout 961 +stdout 962 +stdout 963 +stdout 964 +stdout 965 +stdout 966 +stdout 967 +stdout 968 +stdout 969 +stdout 970 +stdout 971 +stdout 972 +stdout 973 +stdout 974 +stdout 975 +stdout 976 +stdout 977 +stdout 978 +stdout 979 +stdout 980 +stdout 981 +stdout 982 +stdout 983 +stdout 984 +stdout 985 +stdout 986 +stdout 987 +stdout 988 +stdout 989 +stdout 990 +stdout 991 +stdout 992 +stdout 993 +stdout 994 +stdout 995 +stdout 996 +stdout 997 +stdout 998 +stdout 999 diff --git a/node_modules/exit/test/fixtures/create-files.sh b/node_modules/exit/test/fixtures/create-files.sh new file mode 100755 index 0000000..6a526de --- /dev/null +++ b/node_modules/exit/test/fixtures/create-files.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +rm 10*.txt +for n in 10 100 1000; do + node log.js 0 $n stdout stderr &> $n-stdout-stderr.txt + node log.js 0 $n stdout &> $n-stdout.txt + node log.js 0 $n stderr &> $n-stderr.txt +done diff --git a/node_modules/exit/test/fixtures/log-broken.js b/node_modules/exit/test/fixtures/log-broken.js new file mode 100755 index 0000000..74c8f12 --- /dev/null +++ b/node_modules/exit/test/fixtures/log-broken.js @@ -0,0 +1,23 @@ +var errorCode = process.argv[2]; +var max = process.argv[3]; +var modes = process.argv.slice(4); + +function stdout(message) { + if (modes.indexOf('stdout') === -1) { return; } + process.stdout.write('stdout ' + message + '\n'); +} + +function stderr(message) { + if (modes.indexOf('stderr') === -1) { return; } + process.stderr.write('stderr ' + message + '\n'); +} + +for (var i = 0; i < max; i++) { + stdout(i); + stderr(i); +} + +process.exit(errorCode); + +stdout('fail'); +stderr('fail'); diff --git a/node_modules/exit/test/fixtures/log.js b/node_modules/exit/test/fixtures/log.js new file mode 100755 index 0000000..8a9ed9a --- /dev/null +++ b/node_modules/exit/test/fixtures/log.js @@ -0,0 +1,25 @@ +var exit = require('../../lib/exit'); + +var errorCode = process.argv[2]; +var max = process.argv[3]; +var modes = process.argv.slice(4); + +function stdout(message) { + if (modes.indexOf('stdout') === -1) { return; } + process.stdout.write('stdout ' + message + '\n'); +} + +function stderr(message) { + if (modes.indexOf('stderr') === -1) { return; } + process.stderr.write('stderr ' + message + '\n'); +} + +for (var i = 0; i < max; i++) { + stdout(i); + stderr(i); +} + +exit(errorCode); + +stdout('fail'); +stderr('fail'); diff --git a/node_modules/expect/LICENSE b/node_modules/expect/LICENSE new file mode 100755 index 0000000..b96dcb0 --- /dev/null +++ b/node_modules/expect/LICENSE @@ -0,0 +1,21 @@ +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/node_modules/expect/README.md b/node_modules/expect/README.md new file mode 100755 index 0000000..aea630b --- /dev/null +++ b/node_modules/expect/README.md @@ -0,0 +1,3 @@ +# expect + +This package exports the `expect` function used in [Jest](https://jestjs.io/). You can find its documentation [on Jest's website](https://jestjs.io/docs/expect). diff --git a/node_modules/expect/build/asymmetricMatchers.js b/node_modules/expect/build/asymmetricMatchers.js new file mode 100755 index 0000000..711bebb --- /dev/null +++ b/node_modules/expect/build/asymmetricMatchers.js @@ -0,0 +1,354 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +exports.closeTo = + exports.arrayNotContaining = + exports.arrayContaining = + exports.anything = + exports.any = + exports.AsymmetricMatcher = + void 0; +exports.hasProperty = hasProperty; +exports.stringNotMatching = + exports.stringNotContaining = + exports.stringMatching = + exports.stringContaining = + exports.objectNotContaining = + exports.objectContaining = + exports.notCloseTo = + void 0; +var _expectUtils = require('@jest/expect-utils'); +var matcherUtils = _interopRequireWildcard(require('jest-matcher-utils')); +var _jestUtil = require('jest-util'); +var _jestMatchersObject = require('./jestMatchersObject'); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== 'function') return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function (nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interopRequireWildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) { + return {default: obj}; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = {}; + var hasPropertyDescriptor = + Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== 'default' && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor + ? Object.getOwnPropertyDescriptor(obj, key) + : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +var Symbol = globalThis['jest-symbol-do-not-touch'] || globalThis.Symbol; +const functionToString = Function.prototype.toString; +function fnNameFor(func) { + if (func.name) { + return func.name; + } + const matches = functionToString + .call(func) + .match(/^(?:async)?\s*function\s*\*?\s*([\w$]+)\s*\(/); + return matches ? matches[1] : ''; +} +const utils = Object.freeze({ + ...matcherUtils, + iterableEquality: _expectUtils.iterableEquality, + subsetEquality: _expectUtils.subsetEquality +}); +function getPrototype(obj) { + if (Object.getPrototypeOf) { + return Object.getPrototypeOf(obj); + } + if (obj.constructor.prototype == obj) { + return null; + } + return obj.constructor.prototype; +} +function hasProperty(obj, property) { + if (!obj) { + return false; + } + if (Object.prototype.hasOwnProperty.call(obj, property)) { + return true; + } + return hasProperty(getPrototype(obj), property); +} +class AsymmetricMatcher { + $$typeof = Symbol.for('jest.asymmetricMatcher'); + constructor(sample, inverse = false) { + this.sample = sample; + this.inverse = inverse; + } + getMatcherContext() { + return { + // eslint-disable-next-line @typescript-eslint/no-empty-function + dontThrow: () => {}, + ...(0, _jestMatchersObject.getState)(), + equals: _expectUtils.equals, + isNot: this.inverse, + utils + }; + } +} +exports.AsymmetricMatcher = AsymmetricMatcher; +class Any extends AsymmetricMatcher { + constructor(sample) { + if (typeof sample === 'undefined') { + throw new TypeError( + 'any() expects to be passed a constructor function. ' + + 'Please pass one or use anything() to match any object.' + ); + } + super(sample); + } + asymmetricMatch(other) { + if (this.sample == String) { + return typeof other == 'string' || other instanceof String; + } + if (this.sample == Number) { + return typeof other == 'number' || other instanceof Number; + } + if (this.sample == Function) { + return typeof other == 'function' || other instanceof Function; + } + if (this.sample == Boolean) { + return typeof other == 'boolean' || other instanceof Boolean; + } + if (this.sample == BigInt) { + return typeof other == 'bigint' || other instanceof BigInt; + } + if (this.sample == Symbol) { + return typeof other == 'symbol' || other instanceof Symbol; + } + if (this.sample == Object) { + return typeof other == 'object'; + } + return other instanceof this.sample; + } + toString() { + return 'Any'; + } + getExpectedType() { + if (this.sample == String) { + return 'string'; + } + if (this.sample == Number) { + return 'number'; + } + if (this.sample == Function) { + return 'function'; + } + if (this.sample == Object) { + return 'object'; + } + if (this.sample == Boolean) { + return 'boolean'; + } + return fnNameFor(this.sample); + } + toAsymmetricMatcher() { + return `Any<${fnNameFor(this.sample)}>`; + } +} +class Anything extends AsymmetricMatcher { + asymmetricMatch(other) { + return other != null; + } + toString() { + return 'Anything'; + } + + // No getExpectedType method, because it matches either null or undefined. + + toAsymmetricMatcher() { + return 'Anything'; + } +} +class ArrayContaining extends AsymmetricMatcher { + constructor(sample, inverse = false) { + super(sample, inverse); + } + asymmetricMatch(other) { + if (!Array.isArray(this.sample)) { + throw new Error( + `You must provide an array to ${this.toString()}, not '${typeof this + .sample}'.` + ); + } + const result = + this.sample.length === 0 || + (Array.isArray(other) && + this.sample.every(item => + other.some(another => (0, _expectUtils.equals)(item, another)) + )); + return this.inverse ? !result : result; + } + toString() { + return `Array${this.inverse ? 'Not' : ''}Containing`; + } + getExpectedType() { + return 'array'; + } +} +class ObjectContaining extends AsymmetricMatcher { + constructor(sample, inverse = false) { + super(sample, inverse); + } + asymmetricMatch(other) { + if (typeof this.sample !== 'object') { + throw new Error( + `You must provide an object to ${this.toString()}, not '${typeof this + .sample}'.` + ); + } + let result = true; + for (const property in this.sample) { + if ( + !hasProperty(other, property) || + !(0, _expectUtils.equals)(this.sample[property], other[property]) + ) { + result = false; + break; + } + } + return this.inverse ? !result : result; + } + toString() { + return `Object${this.inverse ? 'Not' : ''}Containing`; + } + getExpectedType() { + return 'object'; + } +} +class StringContaining extends AsymmetricMatcher { + constructor(sample, inverse = false) { + if (!(0, _expectUtils.isA)('String', sample)) { + throw new Error('Expected is not a string'); + } + super(sample, inverse); + } + asymmetricMatch(other) { + const result = + (0, _expectUtils.isA)('String', other) && other.includes(this.sample); + return this.inverse ? !result : result; + } + toString() { + return `String${this.inverse ? 'Not' : ''}Containing`; + } + getExpectedType() { + return 'string'; + } +} +class StringMatching extends AsymmetricMatcher { + constructor(sample, inverse = false) { + if ( + !(0, _expectUtils.isA)('String', sample) && + !(0, _expectUtils.isA)('RegExp', sample) + ) { + throw new Error('Expected is not a String or a RegExp'); + } + super(new RegExp(sample), inverse); + } + asymmetricMatch(other) { + const result = + (0, _expectUtils.isA)('String', other) && this.sample.test(other); + return this.inverse ? !result : result; + } + toString() { + return `String${this.inverse ? 'Not' : ''}Matching`; + } + getExpectedType() { + return 'string'; + } +} +class CloseTo extends AsymmetricMatcher { + precision; + constructor(sample, precision = 2, inverse = false) { + if (!(0, _expectUtils.isA)('Number', sample)) { + throw new Error('Expected is not a Number'); + } + if (!(0, _expectUtils.isA)('Number', precision)) { + throw new Error('Precision is not a Number'); + } + super(sample); + this.inverse = inverse; + this.precision = precision; + } + asymmetricMatch(other) { + if (!(0, _expectUtils.isA)('Number', other)) { + return false; + } + let result = false; + if (other === Infinity && this.sample === Infinity) { + result = true; // Infinity - Infinity is NaN + } else if (other === -Infinity && this.sample === -Infinity) { + result = true; // -Infinity - -Infinity is NaN + } else { + result = + Math.abs(this.sample - other) < Math.pow(10, -this.precision) / 2; + } + return this.inverse ? !result : result; + } + toString() { + return `Number${this.inverse ? 'Not' : ''}CloseTo`; + } + getExpectedType() { + return 'number'; + } + toAsymmetricMatcher() { + return [ + this.toString(), + this.sample, + `(${(0, _jestUtil.pluralize)('digit', this.precision)})` + ].join(' '); + } +} +const any = expectedObject => new Any(expectedObject); +exports.any = any; +const anything = () => new Anything(); +exports.anything = anything; +const arrayContaining = sample => new ArrayContaining(sample); +exports.arrayContaining = arrayContaining; +const arrayNotContaining = sample => new ArrayContaining(sample, true); +exports.arrayNotContaining = arrayNotContaining; +const objectContaining = sample => new ObjectContaining(sample); +exports.objectContaining = objectContaining; +const objectNotContaining = sample => new ObjectContaining(sample, true); +exports.objectNotContaining = objectNotContaining; +const stringContaining = expected => new StringContaining(expected); +exports.stringContaining = stringContaining; +const stringNotContaining = expected => new StringContaining(expected, true); +exports.stringNotContaining = stringNotContaining; +const stringMatching = expected => new StringMatching(expected); +exports.stringMatching = stringMatching; +const stringNotMatching = expected => new StringMatching(expected, true); +exports.stringNotMatching = stringNotMatching; +const closeTo = (expected, precision) => new CloseTo(expected, precision); +exports.closeTo = closeTo; +const notCloseTo = (expected, precision) => + new CloseTo(expected, precision, true); +exports.notCloseTo = notCloseTo; diff --git a/node_modules/expect/build/extractExpectedAssertionsErrors.js b/node_modules/expect/build/extractExpectedAssertionsErrors.js new file mode 100755 index 0000000..5994e3c --- /dev/null +++ b/node_modules/expect/build/extractExpectedAssertionsErrors.js @@ -0,0 +1,85 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +exports.default = void 0; +var _jestMatcherUtils = require('jest-matcher-utils'); +var _jestMatchersObject = require('./jestMatchersObject'); +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + +const resetAssertionsLocalState = () => { + (0, _jestMatchersObject.setState)({ + assertionCalls: 0, + expectedAssertionsNumber: null, + isExpectingAssertions: false + }); +}; + +// Create and format all errors related to the mismatched number of `expect` +// calls and reset the matcher's state. +const extractExpectedAssertionsErrors = () => { + const result = []; + const { + assertionCalls, + expectedAssertionsNumber, + expectedAssertionsNumberError, + isExpectingAssertions, + isExpectingAssertionsError + } = (0, _jestMatchersObject.getState)(); + resetAssertionsLocalState(); + if ( + typeof expectedAssertionsNumber === 'number' && + assertionCalls !== expectedAssertionsNumber + ) { + const numOfAssertionsExpected = (0, _jestMatcherUtils.EXPECTED_COLOR)( + (0, _jestMatcherUtils.pluralize)('assertion', expectedAssertionsNumber) + ); + expectedAssertionsNumberError.message = + `${(0, _jestMatcherUtils.matcherHint)( + '.assertions', + '', + expectedAssertionsNumber.toString(), + { + isDirectExpectCall: true + } + )}\n\n` + + `Expected ${numOfAssertionsExpected} to be called but received ${(0, + _jestMatcherUtils.RECEIVED_COLOR)( + (0, _jestMatcherUtils.pluralize)('assertion call', assertionCalls || 0) + )}.`; + result.push({ + actual: assertionCalls.toString(), + error: expectedAssertionsNumberError, + expected: expectedAssertionsNumber.toString() + }); + } + if (isExpectingAssertions && assertionCalls === 0) { + const expected = (0, _jestMatcherUtils.EXPECTED_COLOR)( + 'at least one assertion' + ); + const received = (0, _jestMatcherUtils.RECEIVED_COLOR)('received none'); + isExpectingAssertionsError.message = `${(0, _jestMatcherUtils.matcherHint)( + '.hasAssertions', + '', + '', + { + isDirectExpectCall: true + } + )}\n\nExpected ${expected} to be called but ${received}.`; + result.push({ + actual: 'none', + error: isExpectingAssertionsError, + expected: 'at least one' + }); + } + return result; +}; +var _default = extractExpectedAssertionsErrors; +exports.default = _default; diff --git a/node_modules/expect/build/index.d.ts b/node_modules/expect/build/index.d.ts new file mode 100755 index 0000000..98a6e45 --- /dev/null +++ b/node_modules/expect/build/index.d.ts @@ -0,0 +1,361 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import type {EqualsFunction} from '@jest/expect-utils'; +import type * as jestMatcherUtils from 'jest-matcher-utils'; +import type {Tester} from '@jest/expect-utils'; + +export declare abstract class AsymmetricMatcher + implements AsymmetricMatcher_2 +{ + protected sample: T; + protected inverse: boolean; + $$typeof: symbol; + constructor(sample: T, inverse?: boolean); + protected getMatcherContext(): MatcherContext; + abstract asymmetricMatch(other: unknown): boolean; + abstract toString(): string; + getExpectedType?(): string; + toAsymmetricMatcher?(): string; +} + +declare type AsymmetricMatcher_2 = { + asymmetricMatch(other: unknown): boolean; + toString(): string; + getExpectedType?(): string; + toAsymmetricMatcher?(): string; +}; + +export declare interface AsymmetricMatchers { + any(sample: unknown): AsymmetricMatcher_2; + anything(): AsymmetricMatcher_2; + arrayContaining(sample: Array): AsymmetricMatcher_2; + closeTo(sample: number, precision?: number): AsymmetricMatcher_2; + objectContaining(sample: Record): AsymmetricMatcher_2; + stringContaining(sample: string): AsymmetricMatcher_2; + stringMatching(sample: string | RegExp): AsymmetricMatcher_2; +} + +export declare type AsyncExpectationResult = Promise; + +export declare interface BaseExpect { + assertions(numberOfAssertions: number): void; + extend(matchers: MatchersObject): void; + extractExpectedAssertionsErrors(): ExpectedAssertionsErrors; + getState(): MatcherState; + hasAssertions(): void; + setState(state: Partial): void; +} + +export declare type Expect = { + (actual: T): Matchers & + Inverse> & + PromiseMatchers; +} & BaseExpect & + AsymmetricMatchers & + Inverse>; + +declare const expect: Expect; +export default expect; +export {expect}; + +export declare type ExpectationResult = + | SyncExpectationResult + | AsyncExpectationResult; + +declare type ExpectedAssertionsErrors = Array<{ + actual: string | number; + error: Error; + expected: string; +}>; + +declare type Inverse = { + /** + * Inverse next matcher. If you know how to test something, `.not` lets you test its opposite. + */ + not: Matchers; +}; + +export declare class JestAssertionError extends Error { + matcherResult?: Omit & { + message: string; + }; +} + +export declare type MatcherContext = MatcherUtils & Readonly; + +export declare type MatcherFunction = []> = + MatcherFunctionWithContext; + +export declare type MatcherFunctionWithContext< + Context extends MatcherContext = MatcherContext, + Expected extends Array = [] /** TODO should be: extends Array = [] */, +> = ( + this: Context, + actual: unknown, + ...expected: Expected +) => ExpectationResult; + +export declare interface Matchers> { + /** + * Ensures the last call to a mock function was provided specific args. + */ + lastCalledWith(...expected: Array): R; + /** + * Ensure that the last call to a mock function has returned a specified value. + */ + lastReturnedWith(expected?: unknown): R; + /** + * Ensure that a mock function is called with specific arguments on an Nth call. + */ + nthCalledWith(nth: number, ...expected: Array): R; + /** + * Ensure that the nth call to a mock function has returned a specified value. + */ + nthReturnedWith(nth: number, expected?: unknown): R; + /** + * Checks that a value is what you expect. It calls `Object.is` to compare values. + * Don't use `toBe` with floating-point numbers. + */ + toBe(expected: unknown): R; + /** + * Ensures that a mock function is called. + */ + toBeCalled(): R; + /** + * Ensures that a mock function is called an exact number of times. + */ + toBeCalledTimes(expected: number): R; + /** + * Ensure that a mock function is called with specific arguments. + */ + toBeCalledWith(...expected: Array): R; + /** + * Using exact equality with floating point numbers is a bad idea. + * Rounding means that intuitive things fail. + * The default for `precision` is 2. + */ + toBeCloseTo(expected: number, precision?: number): R; + /** + * Ensure that a variable is not undefined. + */ + toBeDefined(): R; + /** + * When you don't care what a value is, you just want to + * ensure a value is false in a boolean context. + */ + toBeFalsy(): R; + /** + * For comparing floating point numbers. + */ + toBeGreaterThan(expected: number | bigint): R; + /** + * For comparing floating point numbers. + */ + toBeGreaterThanOrEqual(expected: number | bigint): R; + /** + * Ensure that an object is an instance of a class. + * This matcher uses `instanceof` underneath. + */ + toBeInstanceOf(expected: unknown): R; + /** + * For comparing floating point numbers. + */ + toBeLessThan(expected: number | bigint): R; + /** + * For comparing floating point numbers. + */ + toBeLessThanOrEqual(expected: number | bigint): R; + /** + * Used to check that a variable is NaN. + */ + toBeNaN(): R; + /** + * This is the same as `.toBe(null)` but the error messages are a bit nicer. + * So use `.toBeNull()` when you want to check that something is null. + */ + toBeNull(): R; + /** + * Use when you don't care what a value is, you just want to ensure a value + * is true in a boolean context. In JavaScript, there are six falsy values: + * `false`, `0`, `''`, `null`, `undefined`, and `NaN`. Everything else is truthy. + */ + toBeTruthy(): R; + /** + * Used to check that a variable is undefined. + */ + toBeUndefined(): R; + /** + * Used when you want to check that an item is in a list. + * For testing the items in the list, this uses `===`, a strict equality check. + */ + toContain(expected: unknown): R; + /** + * Used when you want to check that an item is in a list. + * For testing the items in the list, this matcher recursively checks the + * equality of all fields, rather than checking for object identity. + */ + toContainEqual(expected: unknown): R; + /** + * Used when you want to check that two objects have the same value. + * This matcher recursively checks the equality of all fields, rather than checking for object identity. + */ + toEqual(expected: unknown): R; + /** + * Ensures that a mock function is called. + */ + toHaveBeenCalled(): R; + /** + * Ensures that a mock function is called an exact number of times. + */ + toHaveBeenCalledTimes(expected: number): R; + /** + * Ensure that a mock function is called with specific arguments. + */ + toHaveBeenCalledWith(...expected: Array): R; + /** + * Ensure that a mock function is called with specific arguments on an Nth call. + */ + toHaveBeenNthCalledWith(nth: number, ...expected: Array): R; + /** + * If you have a mock function, you can use `.toHaveBeenLastCalledWith` + * to test what arguments it was last called with. + */ + toHaveBeenLastCalledWith(...expected: Array): R; + /** + * Use to test the specific value that a mock function last returned. + * If the last call to the mock function threw an error, then this matcher will fail + * no matter what value you provided as the expected return value. + */ + toHaveLastReturnedWith(expected?: unknown): R; + /** + * Used to check that an object has a `.length` property + * and it is set to a certain numeric value. + */ + toHaveLength(expected: number): R; + /** + * Use to test the specific value that a mock function returned for the nth call. + * If the nth call to the mock function threw an error, then this matcher will fail + * no matter what value you provided as the expected return value. + */ + toHaveNthReturnedWith(nth: number, expected?: unknown): R; + /** + * Use to check if property at provided reference keyPath exists for an object. + * For checking deeply nested properties in an object you may use dot notation or an array containing + * the keyPath for deep references. + * + * Optionally, you can provide a value to check if it's equal to the value present at keyPath + * on the target object. This matcher uses 'deep equality' (like `toEqual()`) and recursively checks + * the equality of all fields. + * + * @example + * + * expect(houseForSale).toHaveProperty('kitchen.area', 20); + */ + toHaveProperty( + expectedPath: string | Array, + expectedValue?: unknown, + ): R; + /** + * Use to test that the mock function successfully returned (i.e., did not throw an error) at least one time + */ + toHaveReturned(): R; + /** + * Use to ensure that a mock function returned successfully (i.e., did not throw an error) an exact number of times. + * Any calls to the mock function that throw an error are not counted toward the number of times the function returned. + */ + toHaveReturnedTimes(expected: number): R; + /** + * Use to ensure that a mock function returned a specific value. + */ + toHaveReturnedWith(expected?: unknown): R; + /** + * Check that a string matches a regular expression. + */ + toMatch(expected: string | RegExp): R; + /** + * Used to check that a JavaScript object matches a subset of the properties of an object + */ + toMatchObject( + expected: Record | Array>, + ): R; + /** + * Ensure that a mock function has returned (as opposed to thrown) at least once. + */ + toReturn(): R; + /** + * Ensure that a mock function has returned (as opposed to thrown) a specified number of times. + */ + toReturnTimes(expected: number): R; + /** + * Ensure that a mock function has returned a specified value at least once. + */ + toReturnWith(expected?: unknown): R; + /** + * Use to test that objects have the same types as well as structure. + */ + toStrictEqual(expected: unknown): R; + /** + * Used to test that a function throws when it is called. + */ + toThrow(expected?: unknown): R; + /** + * If you want to test that a specific error is thrown inside a function. + */ + toThrowError(expected?: unknown): R; +} + +declare type MatchersObject = { + [name: string]: RawMatcherFn; +}; + +export declare interface MatcherState { + assertionCalls: number; + currentTestName?: string; + error?: Error; + expand?: boolean; + expectedAssertionsNumber: number | null; + expectedAssertionsNumberError?: Error; + isExpectingAssertions: boolean; + isExpectingAssertionsError?: Error; + isNot?: boolean; + promise?: string; + suppressedErrors: Array; + testPath?: string; +} + +export declare interface MatcherUtils { + dontThrow(): void; + equals: EqualsFunction; + utils: typeof jestMatcherUtils & { + iterableEquality: Tester; + subsetEquality: Tester; + }; +} + +declare type PromiseMatchers = { + /** + * Unwraps the reason of a rejected promise so any other matcher can be chained. + * If the promise is fulfilled the assertion fails. + */ + rejects: Matchers> & Inverse>>; + /** + * Unwraps the value of a fulfilled promise so any other matcher can be chained. + * If the promise is rejected the assertion fails. + */ + resolves: Matchers> & Inverse>>; +}; + +declare type RawMatcherFn = { + (this: Context, actual: any, ...expected: Array): ExpectationResult; +}; + +export declare type SyncExpectationResult = { + pass: boolean; + message(): string; +}; + +export {}; diff --git a/node_modules/expect/build/index.js b/node_modules/expect/build/index.js new file mode 100755 index 0000000..61e0758 --- /dev/null +++ b/node_modules/expect/build/index.js @@ -0,0 +1,397 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +Object.defineProperty(exports, 'AsymmetricMatcher', { + enumerable: true, + get: function () { + return _asymmetricMatchers.AsymmetricMatcher; + } +}); +exports.expect = exports.default = exports.JestAssertionError = void 0; +var _expectUtils = require('@jest/expect-utils'); +var matcherUtils = _interopRequireWildcard(require('jest-matcher-utils')); +var _jestUtil = require('jest-util'); +var _asymmetricMatchers = require('./asymmetricMatchers'); +var _extractExpectedAssertionsErrors = _interopRequireDefault( + require('./extractExpectedAssertionsErrors') +); +var _jestMatchersObject = require('./jestMatchersObject'); +var _matchers = _interopRequireDefault(require('./matchers')); +var _spyMatchers = _interopRequireDefault(require('./spyMatchers')); +var _toThrowMatchers = _interopRequireWildcard(require('./toThrowMatchers')); +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : {default: obj}; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== 'function') return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function (nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interopRequireWildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) { + return {default: obj}; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = {}; + var hasPropertyDescriptor = + Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== 'default' && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor + ? Object.getOwnPropertyDescriptor(obj, key) + : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +var Symbol = globalThis['jest-symbol-do-not-touch'] || globalThis.Symbol; +var Symbol = globalThis['jest-symbol-do-not-touch'] || globalThis.Symbol; +var Promise = + globalThis[Symbol.for('jest-native-promise')] || globalThis.Promise; +class JestAssertionError extends Error { + matcherResult; +} +exports.JestAssertionError = JestAssertionError; +const createToThrowErrorMatchingSnapshotMatcher = function (matcher) { + return function (received, testNameOrInlineSnapshot) { + return matcher.apply(this, [received, testNameOrInlineSnapshot, true]); + }; +}; +const getPromiseMatcher = (name, matcher) => { + if (name === 'toThrow' || name === 'toThrowError') { + return (0, _toThrowMatchers.createMatcher)(name, true); + } else if ( + name === 'toThrowErrorMatchingSnapshot' || + name === 'toThrowErrorMatchingInlineSnapshot' + ) { + return createToThrowErrorMatchingSnapshotMatcher(matcher); + } + return null; +}; +const expect = (actual, ...rest) => { + if (rest.length !== 0) { + throw new Error('Expect takes at most one argument.'); + } + const allMatchers = (0, _jestMatchersObject.getMatchers)(); + const expectation = { + not: {}, + rejects: { + not: {} + }, + resolves: { + not: {} + } + }; + const err = new JestAssertionError(); + Object.keys(allMatchers).forEach(name => { + const matcher = allMatchers[name]; + const promiseMatcher = getPromiseMatcher(name, matcher) || matcher; + expectation[name] = makeThrowingMatcher(matcher, false, '', actual); + expectation.not[name] = makeThrowingMatcher(matcher, true, '', actual); + expectation.resolves[name] = makeResolveMatcher( + name, + promiseMatcher, + false, + actual, + err + ); + expectation.resolves.not[name] = makeResolveMatcher( + name, + promiseMatcher, + true, + actual, + err + ); + expectation.rejects[name] = makeRejectMatcher( + name, + promiseMatcher, + false, + actual, + err + ); + expectation.rejects.not[name] = makeRejectMatcher( + name, + promiseMatcher, + true, + actual, + err + ); + }); + return expectation; +}; +exports.expect = expect; +const getMessage = message => + (message && message()) || + matcherUtils.RECEIVED_COLOR('No message was specified for this matcher.'); +const makeResolveMatcher = + (matcherName, matcher, isNot, actual, outerErr) => + (...args) => { + const options = { + isNot, + promise: 'resolves' + }; + if (!(0, _jestUtil.isPromise)(actual)) { + throw new JestAssertionError( + matcherUtils.matcherErrorMessage( + matcherUtils.matcherHint(matcherName, undefined, '', options), + `${matcherUtils.RECEIVED_COLOR('received')} value must be a promise`, + matcherUtils.printWithType( + 'Received', + actual, + matcherUtils.printReceived + ) + ) + ); + } + const innerErr = new JestAssertionError(); + return actual.then( + result => + makeThrowingMatcher(matcher, isNot, 'resolves', result, innerErr).apply( + null, + args + ), + reason => { + outerErr.message = + `${matcherUtils.matcherHint( + matcherName, + undefined, + '', + options + )}\n\n` + + 'Received promise rejected instead of resolved\n' + + `Rejected to value: ${matcherUtils.printReceived(reason)}`; + return Promise.reject(outerErr); + } + ); + }; +const makeRejectMatcher = + (matcherName, matcher, isNot, actual, outerErr) => + (...args) => { + const options = { + isNot, + promise: 'rejects' + }; + const actualWrapper = typeof actual === 'function' ? actual() : actual; + if (!(0, _jestUtil.isPromise)(actualWrapper)) { + throw new JestAssertionError( + matcherUtils.matcherErrorMessage( + matcherUtils.matcherHint(matcherName, undefined, '', options), + `${matcherUtils.RECEIVED_COLOR( + 'received' + )} value must be a promise or a function returning a promise`, + matcherUtils.printWithType( + 'Received', + actual, + matcherUtils.printReceived + ) + ) + ); + } + const innerErr = new JestAssertionError(); + return actualWrapper.then( + result => { + outerErr.message = + `${matcherUtils.matcherHint( + matcherName, + undefined, + '', + options + )}\n\n` + + 'Received promise resolved instead of rejected\n' + + `Resolved to value: ${matcherUtils.printReceived(result)}`; + return Promise.reject(outerErr); + }, + reason => + makeThrowingMatcher(matcher, isNot, 'rejects', reason, innerErr).apply( + null, + args + ) + ); + }; +const makeThrowingMatcher = (matcher, isNot, promise, actual, err) => + function throwingMatcher(...args) { + let throws = true; + const utils = { + ...matcherUtils, + iterableEquality: _expectUtils.iterableEquality, + subsetEquality: _expectUtils.subsetEquality + }; + const matcherUtilsThing = { + // When throws is disabled, the matcher will not throw errors during test + // execution but instead add them to the global matcher state. If a + // matcher throws, test execution is normally stopped immediately. The + // snapshot matcher uses it because we want to log all snapshot + // failures in a test. + dontThrow: () => (throws = false), + equals: _expectUtils.equals, + utils + }; + const matcherContext = { + ...(0, _jestMatchersObject.getState)(), + ...matcherUtilsThing, + error: err, + isNot, + promise + }; + const processResult = (result, asyncError) => { + _validateResult(result); + (0, _jestMatchersObject.getState)().assertionCalls++; + if ((result.pass && isNot) || (!result.pass && !isNot)) { + // XOR + const message = getMessage(result.message); + let error; + if (err) { + error = err; + error.message = message; + } else if (asyncError) { + error = asyncError; + error.message = message; + } else { + error = new JestAssertionError(message); + + // Try to remove this function from the stack trace frame. + // Guard for some environments (browsers) that do not support this feature. + if (Error.captureStackTrace) { + Error.captureStackTrace(error, throwingMatcher); + } + } + // Passing the result of the matcher with the error so that a custom + // reporter could access the actual and expected objects of the result + // for example in order to display a custom visual diff + error.matcherResult = { + ...result, + message + }; + if (throws) { + throw error; + } else { + (0, _jestMatchersObject.getState)().suppressedErrors.push(error); + } + } + }; + const handleError = error => { + if ( + matcher[_jestMatchersObject.INTERNAL_MATCHER_FLAG] === true && + !(error instanceof JestAssertionError) && + error.name !== 'PrettyFormatPluginError' && + // Guard for some environments (browsers) that do not support this feature. + Error.captureStackTrace + ) { + // Try to remove this and deeper functions from the stack trace frame. + Error.captureStackTrace(error, throwingMatcher); + } + throw error; + }; + let potentialResult; + try { + potentialResult = + matcher[_jestMatchersObject.INTERNAL_MATCHER_FLAG] === true + ? matcher.call(matcherContext, actual, ...args) + : // It's a trap specifically for inline snapshot to capture this name + // in the stack trace, so that it can correctly get the custom matcher + // function call. + (function __EXTERNAL_MATCHER_TRAP__() { + return matcher.call(matcherContext, actual, ...args); + })(); + if ((0, _jestUtil.isPromise)(potentialResult)) { + const asyncError = new JestAssertionError(); + if (Error.captureStackTrace) { + Error.captureStackTrace(asyncError, throwingMatcher); + } + return potentialResult + .then(aResult => processResult(aResult, asyncError)) + .catch(handleError); + } else { + return processResult(potentialResult); + } + } catch (error) { + return handleError(error); + } + }; +expect.extend = matchers => + (0, _jestMatchersObject.setMatchers)(matchers, false, expect); +expect.anything = _asymmetricMatchers.anything; +expect.any = _asymmetricMatchers.any; +expect.not = { + arrayContaining: _asymmetricMatchers.arrayNotContaining, + closeTo: _asymmetricMatchers.notCloseTo, + objectContaining: _asymmetricMatchers.objectNotContaining, + stringContaining: _asymmetricMatchers.stringNotContaining, + stringMatching: _asymmetricMatchers.stringNotMatching +}; +expect.arrayContaining = _asymmetricMatchers.arrayContaining; +expect.closeTo = _asymmetricMatchers.closeTo; +expect.objectContaining = _asymmetricMatchers.objectContaining; +expect.stringContaining = _asymmetricMatchers.stringContaining; +expect.stringMatching = _asymmetricMatchers.stringMatching; +const _validateResult = result => { + if ( + typeof result !== 'object' || + typeof result.pass !== 'boolean' || + (result.message && + typeof result.message !== 'string' && + typeof result.message !== 'function') + ) { + throw new Error( + 'Unexpected return from a matcher function.\n' + + 'Matcher functions should ' + + 'return an object in the following format:\n' + + ' {message?: string | function, pass: boolean}\n' + + `'${matcherUtils.stringify(result)}' was returned` + ); + } +}; +function assertions(expected) { + const error = new Error(); + if (Error.captureStackTrace) { + Error.captureStackTrace(error, assertions); + } + (0, _jestMatchersObject.setState)({ + expectedAssertionsNumber: expected, + expectedAssertionsNumberError: error + }); +} +function hasAssertions(...args) { + const error = new Error(); + if (Error.captureStackTrace) { + Error.captureStackTrace(error, hasAssertions); + } + matcherUtils.ensureNoExpected(args[0], '.hasAssertions'); + (0, _jestMatchersObject.setState)({ + isExpectingAssertions: true, + isExpectingAssertionsError: error + }); +} + +// add default jest matchers +(0, _jestMatchersObject.setMatchers)(_matchers.default, true, expect); +(0, _jestMatchersObject.setMatchers)(_spyMatchers.default, true, expect); +(0, _jestMatchersObject.setMatchers)(_toThrowMatchers.default, true, expect); +expect.assertions = assertions; +expect.hasAssertions = hasAssertions; +expect.getState = _jestMatchersObject.getState; +expect.setState = _jestMatchersObject.setState; +expect.extractExpectedAssertionsErrors = + _extractExpectedAssertionsErrors.default; +var _default = expect; +exports.default = _default; diff --git a/node_modules/expect/build/jestMatchersObject.js b/node_modules/expect/build/jestMatchersObject.js new file mode 100755 index 0000000..e3005ef --- /dev/null +++ b/node_modules/expect/build/jestMatchersObject.js @@ -0,0 +1,99 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +exports.setState = + exports.setMatchers = + exports.getState = + exports.getMatchers = + exports.INTERNAL_MATCHER_FLAG = + void 0; +var _jestGetType = require('jest-get-type'); +var _asymmetricMatchers = require('./asymmetricMatchers'); +var Symbol = globalThis['jest-symbol-do-not-touch'] || globalThis.Symbol; +// Global matchers object holds the list of available matchers and +// the state, that can hold matcher specific values that change over time. +const JEST_MATCHERS_OBJECT = Symbol.for('$$jest-matchers-object'); + +// Notes a built-in/internal Jest matcher. +// Jest may override the stack trace of Errors thrown by internal matchers. +const INTERNAL_MATCHER_FLAG = Symbol.for('$$jest-internal-matcher'); +exports.INTERNAL_MATCHER_FLAG = INTERNAL_MATCHER_FLAG; +if (!Object.prototype.hasOwnProperty.call(globalThis, JEST_MATCHERS_OBJECT)) { + const defaultState = { + assertionCalls: 0, + expectedAssertionsNumber: null, + isExpectingAssertions: false, + suppressedErrors: [] // errors that are not thrown immediately. + }; + + Object.defineProperty(globalThis, JEST_MATCHERS_OBJECT, { + value: { + matchers: Object.create(null), + state: defaultState + } + }); +} +const getState = () => globalThis[JEST_MATCHERS_OBJECT].state; +exports.getState = getState; +const setState = state => { + Object.assign(globalThis[JEST_MATCHERS_OBJECT].state, state); +}; +exports.setState = setState; +const getMatchers = () => globalThis[JEST_MATCHERS_OBJECT].matchers; +exports.getMatchers = getMatchers; +const setMatchers = (matchers, isInternal, expect) => { + Object.keys(matchers).forEach(key => { + const matcher = matchers[key]; + if (typeof matcher !== 'function') { + throw new TypeError( + `expect.extend: \`${key}\` is not a valid matcher. Must be a function, is "${(0, + _jestGetType.getType)(matcher)}"` + ); + } + Object.defineProperty(matcher, INTERNAL_MATCHER_FLAG, { + value: isInternal + }); + if (!isInternal) { + // expect is defined + + class CustomMatcher extends _asymmetricMatchers.AsymmetricMatcher { + constructor(inverse = false, ...sample) { + super(sample, inverse); + } + asymmetricMatch(other) { + const {pass} = matcher.call( + this.getMatcherContext(), + other, + ...this.sample + ); + return this.inverse ? !pass : pass; + } + toString() { + return `${this.inverse ? 'not.' : ''}${key}`; + } + getExpectedType() { + return 'any'; + } + toAsymmetricMatcher() { + return `${this.toString()}<${this.sample.map(String).join(', ')}>`; + } + } + Object.defineProperty(expect, key, { + configurable: true, + enumerable: true, + value: (...sample) => new CustomMatcher(false, ...sample), + writable: true + }); + Object.defineProperty(expect.not, key, { + configurable: true, + enumerable: true, + value: (...sample) => new CustomMatcher(true, ...sample), + writable: true + }); + } + }); + Object.assign(globalThis[JEST_MATCHERS_OBJECT].matchers, matchers); +}; +exports.setMatchers = setMatchers; diff --git a/node_modules/expect/build/matchers.js b/node_modules/expect/build/matchers.js new file mode 100755 index 0000000..ac4e124 --- /dev/null +++ b/node_modules/expect/build/matchers.js @@ -0,0 +1,1280 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +exports.default = void 0; +var _expectUtils = require('@jest/expect-utils'); +var _jestGetType = require('jest-get-type'); +var _jestMatcherUtils = require('jest-matcher-utils'); +var _print = require('./print'); +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + +/* eslint-disable local/ban-types-eventually */ + +// Omit colon and one or more spaces, so can call getLabelPrinter. +const EXPECTED_LABEL = 'Expected'; +const RECEIVED_LABEL = 'Received'; +const EXPECTED_VALUE_LABEL = 'Expected value'; +const RECEIVED_VALUE_LABEL = 'Received value'; + +// The optional property of matcher context is true if undefined. +const isExpand = expand => expand !== false; +const toStrictEqualTesters = [ + _expectUtils.iterableEquality, + _expectUtils.typeEquality, + _expectUtils.sparseArrayEquality, + _expectUtils.arrayBufferEquality +]; +const matchers = { + toBe(received, expected) { + const matcherName = 'toBe'; + const options = { + comment: 'Object.is equality', + isNot: this.isNot, + promise: this.promise + }; + const pass = Object.is(received, expected); + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `Expected: not ${(0, _jestMatcherUtils.printExpected)(expected)}` + : () => { + const expectedType = (0, _jestGetType.getType)(expected); + let deepEqualityName = null; + if (expectedType !== 'map' && expectedType !== 'set') { + // If deep equality passes when referential identity fails, + // but exclude map and set until review of their equality logic. + if ( + (0, _expectUtils.equals)( + received, + expected, + toStrictEqualTesters, + true + ) + ) { + deepEqualityName = 'toStrictEqual'; + } else if ( + (0, _expectUtils.equals)(received, expected, [ + _expectUtils.iterableEquality + ]) + ) { + deepEqualityName = 'toEqual'; + } + } + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + (deepEqualityName !== null + ? `${(0, _jestMatcherUtils.DIM_COLOR)( + `If it should pass with deep equality, replace "${matcherName}" with "${deepEqualityName}"` + )}\n\n` + : '') + + (0, _jestMatcherUtils.printDiffOrStringify)( + expected, + received, + EXPECTED_LABEL, + RECEIVED_LABEL, + isExpand(this.expand) + ) + ); + }; + + // Passing the actual and expected objects so that a custom reporter + // could access them, for example in order to display a custom visual diff, + // or create a different error message + return { + actual: received, + expected, + message, + name: matcherName, + pass + }; + }, + toBeCloseTo(received, expected, precision = 2) { + const matcherName = 'toBeCloseTo'; + const secondArgument = arguments.length === 3 ? 'precision' : undefined; + const isNot = this.isNot; + const options = { + isNot, + promise: this.promise, + secondArgument, + secondArgumentColor: arg => arg + }; + if (typeof expected !== 'number') { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ), + `${(0, _jestMatcherUtils.EXPECTED_COLOR)( + 'expected' + )} value must be a number`, + (0, _jestMatcherUtils.printWithType)( + 'Expected', + expected, + _jestMatcherUtils.printExpected + ) + ) + ); + } + if (typeof received !== 'number') { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ), + `${(0, _jestMatcherUtils.RECEIVED_COLOR)( + 'received' + )} value must be a number`, + (0, _jestMatcherUtils.printWithType)( + 'Received', + received, + _jestMatcherUtils.printReceived + ) + ) + ); + } + let pass = false; + let expectedDiff = 0; + let receivedDiff = 0; + if (received === Infinity && expected === Infinity) { + pass = true; // Infinity - Infinity is NaN + } else if (received === -Infinity && expected === -Infinity) { + pass = true; // -Infinity - -Infinity is NaN + } else { + expectedDiff = Math.pow(10, -precision) / 2; + receivedDiff = Math.abs(expected - received); + pass = receivedDiff < expectedDiff; + } + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `Expected: not ${(0, _jestMatcherUtils.printExpected)(expected)}\n` + + (receivedDiff === 0 + ? '' + : `Received: ${(0, _jestMatcherUtils.printReceived)( + received + )}\n` + + `\n${(0, _print.printCloseTo)( + receivedDiff, + expectedDiff, + precision, + isNot + )}`) + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `Expected: ${(0, _jestMatcherUtils.printExpected)(expected)}\n` + + `Received: ${(0, _jestMatcherUtils.printReceived)(received)}\n` + + '\n' + + (0, _print.printCloseTo)( + receivedDiff, + expectedDiff, + precision, + isNot + ); + return { + message, + pass + }; + }, + toBeDefined(received, expected) { + const matcherName = 'toBeDefined'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureNoExpected)(expected, matcherName, options); + const pass = received !== void 0; + const message = () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)(matcherName, undefined, '', options) + + '\n\n' + + `Received: ${(0, _jestMatcherUtils.printReceived)(received)}`; + return { + message, + pass + }; + }, + toBeFalsy(received, expected) { + const matcherName = 'toBeFalsy'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureNoExpected)(expected, matcherName, options); + const pass = !received; + const message = () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)(matcherName, undefined, '', options) + + '\n\n' + + `Received: ${(0, _jestMatcherUtils.printReceived)(received)}`; + return { + message, + pass + }; + }, + toBeGreaterThan(received, expected) { + const matcherName = 'toBeGreaterThan'; + const isNot = this.isNot; + const options = { + isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureNumbers)( + received, + expected, + matcherName, + options + ); + const pass = received > expected; + const message = () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `Expected:${isNot ? ' not' : ''} > ${(0, _jestMatcherUtils.printExpected)( + expected + )}\n` + + `Received:${isNot ? ' ' : ''} ${(0, _jestMatcherUtils.printReceived)( + received + )}`; + return { + message, + pass + }; + }, + toBeGreaterThanOrEqual(received, expected) { + const matcherName = 'toBeGreaterThanOrEqual'; + const isNot = this.isNot; + const options = { + isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureNumbers)( + received, + expected, + matcherName, + options + ); + const pass = received >= expected; + const message = () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `Expected:${isNot ? ' not' : ''} >= ${(0, + _jestMatcherUtils.printExpected)(expected)}\n` + + `Received:${isNot ? ' ' : ''} ${(0, + _jestMatcherUtils.printReceived)(received)}`; + return { + message, + pass + }; + }, + toBeInstanceOf(received, expected) { + const matcherName = 'toBeInstanceOf'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + if (typeof expected !== 'function') { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ), + `${(0, _jestMatcherUtils.EXPECTED_COLOR)( + 'expected' + )} value must be a function`, + (0, _jestMatcherUtils.printWithType)( + 'Expected', + expected, + _jestMatcherUtils.printExpected + ) + ) + ); + } + const pass = received instanceof expected; + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + (0, _print.printExpectedConstructorNameNot)( + 'Expected constructor', + expected + ) + + (typeof received.constructor === 'function' && + received.constructor !== expected + ? (0, _print.printReceivedConstructorNameNot)( + 'Received constructor', + received.constructor, + expected + ) + : '') + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + (0, _print.printExpectedConstructorName)( + 'Expected constructor', + expected + ) + + ((0, _jestGetType.isPrimitive)(received) || + Object.getPrototypeOf(received) === null + ? `\nReceived value has no prototype\nReceived value: ${(0, + _jestMatcherUtils.printReceived)(received)}` + : typeof received.constructor !== 'function' + ? `\nReceived value: ${(0, _jestMatcherUtils.printReceived)( + received + )}` + : (0, _print.printReceivedConstructorName)( + 'Received constructor', + received.constructor + )); + return { + message, + pass + }; + }, + toBeLessThan(received, expected) { + const matcherName = 'toBeLessThan'; + const isNot = this.isNot; + const options = { + isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureNumbers)( + received, + expected, + matcherName, + options + ); + const pass = received < expected; + const message = () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `Expected:${isNot ? ' not' : ''} < ${(0, _jestMatcherUtils.printExpected)( + expected + )}\n` + + `Received:${isNot ? ' ' : ''} ${(0, _jestMatcherUtils.printReceived)( + received + )}`; + return { + message, + pass + }; + }, + toBeLessThanOrEqual(received, expected) { + const matcherName = 'toBeLessThanOrEqual'; + const isNot = this.isNot; + const options = { + isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureNumbers)( + received, + expected, + matcherName, + options + ); + const pass = received <= expected; + const message = () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `Expected:${isNot ? ' not' : ''} <= ${(0, + _jestMatcherUtils.printExpected)(expected)}\n` + + `Received:${isNot ? ' ' : ''} ${(0, + _jestMatcherUtils.printReceived)(received)}`; + return { + message, + pass + }; + }, + toBeNaN(received, expected) { + const matcherName = 'toBeNaN'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureNoExpected)(expected, matcherName, options); + const pass = Number.isNaN(received); + const message = () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)(matcherName, undefined, '', options) + + '\n\n' + + `Received: ${(0, _jestMatcherUtils.printReceived)(received)}`; + return { + message, + pass + }; + }, + toBeNull(received, expected) { + const matcherName = 'toBeNull'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureNoExpected)(expected, matcherName, options); + const pass = received === null; + const message = () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)(matcherName, undefined, '', options) + + '\n\n' + + `Received: ${(0, _jestMatcherUtils.printReceived)(received)}`; + return { + message, + pass + }; + }, + toBeTruthy(received, expected) { + const matcherName = 'toBeTruthy'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureNoExpected)(expected, matcherName, options); + const pass = !!received; + const message = () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)(matcherName, undefined, '', options) + + '\n\n' + + `Received: ${(0, _jestMatcherUtils.printReceived)(received)}`; + return { + message, + pass + }; + }, + toBeUndefined(received, expected) { + const matcherName = 'toBeUndefined'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureNoExpected)(expected, matcherName, options); + const pass = received === void 0; + const message = () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)(matcherName, undefined, '', options) + + '\n\n' + + `Received: ${(0, _jestMatcherUtils.printReceived)(received)}`; + return { + message, + pass + }; + }, + toContain(received, expected) { + const matcherName = 'toContain'; + const isNot = this.isNot; + const options = { + comment: 'indexOf', + isNot, + promise: this.promise + }; + if (received == null) { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ), + `${(0, _jestMatcherUtils.RECEIVED_COLOR)( + 'received' + )} value must not be null nor undefined`, + (0, _jestMatcherUtils.printWithType)( + 'Received', + received, + _jestMatcherUtils.printReceived + ) + ) + ); + } + if (typeof received === 'string') { + const wrongTypeErrorMessage = `${(0, _jestMatcherUtils.EXPECTED_COLOR)( + 'expected' + )} value must be a string if ${(0, _jestMatcherUtils.RECEIVED_COLOR)( + 'received' + )} value is a string`; + if (typeof expected !== 'string') { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + received, + String(expected), + options + ), + wrongTypeErrorMessage, + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.printWithType)( + 'Expected', + expected, + _jestMatcherUtils.printExpected + ) + + '\n' + + (0, _jestMatcherUtils.printWithType)( + 'Received', + received, + _jestMatcherUtils.printReceived + ) + ) + ); + } + const index = received.indexOf(String(expected)); + const pass = index !== -1; + const message = () => { + const labelExpected = `Expected ${ + typeof expected === 'string' ? 'substring' : 'value' + }`; + const labelReceived = 'Received string'; + const printLabel = (0, _jestMatcherUtils.getLabelPrinter)( + labelExpected, + labelReceived + ); + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `${printLabel(labelExpected)}${isNot ? 'not ' : ''}${(0, + _jestMatcherUtils.printExpected)(expected)}\n` + + `${printLabel(labelReceived)}${isNot ? ' ' : ''}${ + isNot + ? (0, _print.printReceivedStringContainExpectedSubstring)( + received, + index, + String(expected).length + ) + : (0, _jestMatcherUtils.printReceived)(received) + }` + ); + }; + return { + message, + pass + }; + } + const indexable = Array.from(received); + const index = indexable.indexOf(expected); + const pass = index !== -1; + const message = () => { + const labelExpected = 'Expected value'; + const labelReceived = `Received ${(0, _jestGetType.getType)(received)}`; + const printLabel = (0, _jestMatcherUtils.getLabelPrinter)( + labelExpected, + labelReceived + ); + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `${printLabel(labelExpected)}${isNot ? 'not ' : ''}${(0, + _jestMatcherUtils.printExpected)(expected)}\n` + + `${printLabel(labelReceived)}${isNot ? ' ' : ''}${ + isNot && Array.isArray(received) + ? (0, _print.printReceivedArrayContainExpectedItem)(received, index) + : (0, _jestMatcherUtils.printReceived)(received) + }` + + (!isNot && + indexable.findIndex(item => + (0, _expectUtils.equals)(item, expected, [ + _expectUtils.iterableEquality + ]) + ) !== -1 + ? `\n\n${_jestMatcherUtils.SUGGEST_TO_CONTAIN_EQUAL}` + : '') + ); + }; + return { + message, + pass + }; + }, + toContainEqual(received, expected) { + const matcherName = 'toContainEqual'; + const isNot = this.isNot; + const options = { + comment: 'deep equality', + isNot, + promise: this.promise + }; + if (received == null) { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ), + `${(0, _jestMatcherUtils.RECEIVED_COLOR)( + 'received' + )} value must not be null nor undefined`, + (0, _jestMatcherUtils.printWithType)( + 'Received', + received, + _jestMatcherUtils.printReceived + ) + ) + ); + } + const index = Array.from(received).findIndex(item => + (0, _expectUtils.equals)(item, expected, [_expectUtils.iterableEquality]) + ); + const pass = index !== -1; + const message = () => { + const labelExpected = 'Expected value'; + const labelReceived = `Received ${(0, _jestGetType.getType)(received)}`; + const printLabel = (0, _jestMatcherUtils.getLabelPrinter)( + labelExpected, + labelReceived + ); + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `${printLabel(labelExpected)}${isNot ? 'not ' : ''}${(0, + _jestMatcherUtils.printExpected)(expected)}\n` + + `${printLabel(labelReceived)}${isNot ? ' ' : ''}${ + isNot && Array.isArray(received) + ? (0, _print.printReceivedArrayContainExpectedItem)(received, index) + : (0, _jestMatcherUtils.printReceived)(received) + }` + ); + }; + return { + message, + pass + }; + }, + toEqual(received, expected) { + const matcherName = 'toEqual'; + const options = { + comment: 'deep equality', + isNot: this.isNot, + promise: this.promise + }; + const pass = (0, _expectUtils.equals)(received, expected, [ + _expectUtils.iterableEquality + ]); + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `Expected: not ${(0, _jestMatcherUtils.printExpected)(expected)}\n` + + ((0, _jestMatcherUtils.stringify)(expected) !== + (0, _jestMatcherUtils.stringify)(received) + ? `Received: ${(0, _jestMatcherUtils.printReceived)(received)}` + : '') + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + (0, _jestMatcherUtils.printDiffOrStringify)( + expected, + received, + EXPECTED_LABEL, + RECEIVED_LABEL, + isExpand(this.expand) + ); + + // Passing the actual and expected objects so that a custom reporter + // could access them, for example in order to display a custom visual diff, + // or create a different error message + return { + actual: received, + expected, + message, + name: matcherName, + pass + }; + }, + toHaveLength(received, expected) { + const matcherName = 'toHaveLength'; + const isNot = this.isNot; + const options = { + isNot, + promise: this.promise + }; + if (typeof received?.length !== 'number') { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ), + `${(0, _jestMatcherUtils.RECEIVED_COLOR)( + 'received' + )} value must have a length property whose value must be a number`, + (0, _jestMatcherUtils.printWithType)( + 'Received', + received, + _jestMatcherUtils.printReceived + ) + ) + ); + } + (0, _jestMatcherUtils.ensureExpectedIsNonNegativeInteger)( + expected, + matcherName, + options + ); + const pass = received.length === expected; + const message = () => { + const labelExpected = 'Expected length'; + const labelReceivedLength = 'Received length'; + const labelReceivedValue = `Received ${(0, _jestGetType.getType)( + received + )}`; + const printLabel = (0, _jestMatcherUtils.getLabelPrinter)( + labelExpected, + labelReceivedLength, + labelReceivedValue + ); + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `${printLabel(labelExpected)}${isNot ? 'not ' : ''}${(0, + _jestMatcherUtils.printExpected)(expected)}\n` + + (isNot + ? '' + : `${printLabel(labelReceivedLength)}${(0, + _jestMatcherUtils.printReceived)(received.length)}\n`) + + `${printLabel(labelReceivedValue)}${isNot ? ' ' : ''}${(0, + _jestMatcherUtils.printReceived)(received)}` + ); + }; + return { + message, + pass + }; + }, + toHaveProperty(received, expectedPath, expectedValue) { + const matcherName = 'toHaveProperty'; + const expectedArgument = 'path'; + const hasValue = arguments.length === 3; + const options = { + isNot: this.isNot, + promise: this.promise, + secondArgument: hasValue ? 'value' : '' + }; + if (received === null || received === undefined) { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + expectedArgument, + options + ), + `${(0, _jestMatcherUtils.RECEIVED_COLOR)( + 'received' + )} value must not be null nor undefined`, + (0, _jestMatcherUtils.printWithType)( + 'Received', + received, + _jestMatcherUtils.printReceived + ) + ) + ); + } + const expectedPathType = (0, _jestGetType.getType)(expectedPath); + if (expectedPathType !== 'string' && expectedPathType !== 'array') { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + expectedArgument, + options + ), + `${(0, _jestMatcherUtils.EXPECTED_COLOR)( + 'expected' + )} path must be a string or array`, + (0, _jestMatcherUtils.printWithType)( + 'Expected', + expectedPath, + _jestMatcherUtils.printExpected + ) + ) + ); + } + const expectedPathLength = + typeof expectedPath === 'string' + ? (0, _expectUtils.pathAsArray)(expectedPath).length + : expectedPath.length; + if (expectedPathType === 'array' && expectedPathLength === 0) { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + expectedArgument, + options + ), + `${(0, _jestMatcherUtils.EXPECTED_COLOR)( + 'expected' + )} path must not be an empty array`, + (0, _jestMatcherUtils.printWithType)( + 'Expected', + expectedPath, + _jestMatcherUtils.printExpected + ) + ) + ); + } + const result = (0, _expectUtils.getPath)(received, expectedPath); + const {lastTraversedObject, endPropIsDefined, hasEndProp, value} = result; + const receivedPath = result.traversedPath; + const hasCompletePath = receivedPath.length === expectedPathLength; + const receivedValue = hasCompletePath ? result.value : lastTraversedObject; + const pass = + hasValue && endPropIsDefined + ? (0, _expectUtils.equals)(value, expectedValue, [ + _expectUtils.iterableEquality + ]) + : Boolean(hasEndProp); + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + expectedArgument, + options + ) + + '\n\n' + + (hasValue + ? `Expected path: ${(0, _jestMatcherUtils.printExpected)( + expectedPath + )}\n\n` + + `Expected value: not ${(0, _jestMatcherUtils.printExpected)( + expectedValue + )}${ + (0, _jestMatcherUtils.stringify)(expectedValue) !== + (0, _jestMatcherUtils.stringify)(receivedValue) + ? `\nReceived value: ${(0, + _jestMatcherUtils.printReceived)(receivedValue)}` + : '' + }` + : `Expected path: not ${(0, _jestMatcherUtils.printExpected)( + expectedPath + )}\n\n` + + `Received value: ${(0, _jestMatcherUtils.printReceived)( + receivedValue + )}`) + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + expectedArgument, + options + ) + + '\n\n' + + `Expected path: ${(0, _jestMatcherUtils.printExpected)( + expectedPath + )}\n` + + (hasCompletePath + ? `\n${(0, _jestMatcherUtils.printDiffOrStringify)( + expectedValue, + receivedValue, + EXPECTED_VALUE_LABEL, + RECEIVED_VALUE_LABEL, + isExpand(this.expand) + )}` + : `Received path: ${(0, _jestMatcherUtils.printReceived)( + expectedPathType === 'array' || receivedPath.length === 0 + ? receivedPath + : receivedPath.join('.') + )}\n\n${ + hasValue + ? `Expected value: ${(0, _jestMatcherUtils.printExpected)( + expectedValue + )}\n` + : '' + }Received value: ${(0, _jestMatcherUtils.printReceived)( + receivedValue + )}`); + return { + message, + pass + }; + }, + toMatch(received, expected) { + const matcherName = 'toMatch'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + if (typeof received !== 'string') { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ), + `${(0, _jestMatcherUtils.RECEIVED_COLOR)( + 'received' + )} value must be a string`, + (0, _jestMatcherUtils.printWithType)( + 'Received', + received, + _jestMatcherUtils.printReceived + ) + ) + ); + } + if ( + !(typeof expected === 'string') && + !(expected && typeof expected.test === 'function') + ) { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ), + `${(0, _jestMatcherUtils.EXPECTED_COLOR)( + 'expected' + )} value must be a string or regular expression`, + (0, _jestMatcherUtils.printWithType)( + 'Expected', + expected, + _jestMatcherUtils.printExpected + ) + ) + ); + } + const pass = + typeof expected === 'string' + ? received.includes(expected) + : new RegExp(expected).test(received); + const message = pass + ? () => + typeof expected === 'string' + ? // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `Expected substring: not ${(0, _jestMatcherUtils.printExpected)( + expected + )}\n` + + `Received string: ${(0, + _print.printReceivedStringContainExpectedSubstring)( + received, + received.indexOf(expected), + expected.length + )}` + : // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `Expected pattern: not ${(0, _jestMatcherUtils.printExpected)( + expected + )}\n` + + `Received string: ${(0, + _print.printReceivedStringContainExpectedResult)( + received, + typeof expected.exec === 'function' + ? expected.exec(received) + : null + )}` + : () => { + const labelExpected = `Expected ${ + typeof expected === 'string' ? 'substring' : 'pattern' + }`; + const labelReceived = 'Received string'; + const printLabel = (0, _jestMatcherUtils.getLabelPrinter)( + labelExpected, + labelReceived + ); + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `${printLabel(labelExpected)}${(0, _jestMatcherUtils.printExpected)( + expected + )}\n` + + `${printLabel(labelReceived)}${(0, _jestMatcherUtils.printReceived)( + received + )}` + ); + }; + return { + message, + pass + }; + }, + toMatchObject(received, expected) { + const matcherName = 'toMatchObject'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + if (typeof received !== 'object' || received === null) { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ), + `${(0, _jestMatcherUtils.RECEIVED_COLOR)( + 'received' + )} value must be a non-null object`, + (0, _jestMatcherUtils.printWithType)( + 'Received', + received, + _jestMatcherUtils.printReceived + ) + ) + ); + } + if (typeof expected !== 'object' || expected === null) { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ), + `${(0, _jestMatcherUtils.EXPECTED_COLOR)( + 'expected' + )} value must be a non-null object`, + (0, _jestMatcherUtils.printWithType)( + 'Expected', + expected, + _jestMatcherUtils.printExpected + ) + ) + ); + } + const pass = (0, _expectUtils.equals)(received, expected, [ + _expectUtils.iterableEquality, + _expectUtils.subsetEquality + ]); + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `Expected: not ${(0, _jestMatcherUtils.printExpected)(expected)}` + + ((0, _jestMatcherUtils.stringify)(expected) !== + (0, _jestMatcherUtils.stringify)(received) + ? `\nReceived: ${(0, _jestMatcherUtils.printReceived)( + received + )}` + : '') + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + (0, _jestMatcherUtils.printDiffOrStringify)( + expected, + (0, _expectUtils.getObjectSubset)(received, expected), + EXPECTED_LABEL, + RECEIVED_LABEL, + isExpand(this.expand) + ); + return { + message, + pass + }; + }, + toStrictEqual(received, expected) { + const matcherName = 'toStrictEqual'; + const options = { + comment: 'deep equality', + isNot: this.isNot, + promise: this.promise + }; + const pass = (0, _expectUtils.equals)( + received, + expected, + toStrictEqualTesters, + true + ); + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + `Expected: not ${(0, _jestMatcherUtils.printExpected)(expected)}\n` + + ((0, _jestMatcherUtils.stringify)(expected) !== + (0, _jestMatcherUtils.stringify)(received) + ? `Received: ${(0, _jestMatcherUtils.printReceived)(received)}` + : '') + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + (0, _jestMatcherUtils.printDiffOrStringify)( + expected, + received, + EXPECTED_LABEL, + RECEIVED_LABEL, + isExpand(this.expand) + ); + + // Passing the actual and expected objects so that a custom reporter + // could access them, for example in order to display a custom visual diff, + // or create a different error message + return { + actual: received, + expected, + message, + name: matcherName, + pass + }; + } +}; +var _default = matchers; +exports.default = _default; diff --git a/node_modules/expect/build/print.js b/node_modules/expect/build/print.js new file mode 100755 index 0000000..74e1161 --- /dev/null +++ b/node_modules/expect/build/print.js @@ -0,0 +1,122 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +exports.printReceivedStringContainExpectedSubstring = + exports.printReceivedStringContainExpectedResult = + exports.printReceivedConstructorNameNot = + exports.printReceivedConstructorName = + exports.printReceivedArrayContainExpectedItem = + exports.printExpectedConstructorNameNot = + exports.printExpectedConstructorName = + exports.printCloseTo = + void 0; +var _jestMatcherUtils = require('jest-matcher-utils'); +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + +/* eslint-disable local/ban-types-eventually */ + +// Format substring but do not enclose in double quote marks. +// The replacement is compatible with pretty-format package. +const printSubstring = val => val.replace(/"|\\/g, '\\$&'); +const printReceivedStringContainExpectedSubstring = ( + received, + start, + length // not end +) => + (0, _jestMatcherUtils.RECEIVED_COLOR)( + `"${printSubstring(received.slice(0, start))}${(0, + _jestMatcherUtils.INVERTED_COLOR)( + printSubstring(received.slice(start, start + length)) + )}${printSubstring(received.slice(start + length))}"` + ); +exports.printReceivedStringContainExpectedSubstring = + printReceivedStringContainExpectedSubstring; +const printReceivedStringContainExpectedResult = (received, result) => + result === null + ? (0, _jestMatcherUtils.printReceived)(received) + : printReceivedStringContainExpectedSubstring( + received, + result.index, + result[0].length + ); + +// The serialized array is compatible with pretty-format package min option. +// However, items have default stringify depth (instead of depth - 1) +// so expected item looks consistent by itself and enclosed in the array. +exports.printReceivedStringContainExpectedResult = + printReceivedStringContainExpectedResult; +const printReceivedArrayContainExpectedItem = (received, index) => + (0, _jestMatcherUtils.RECEIVED_COLOR)( + `[${received + .map((item, i) => { + const stringified = (0, _jestMatcherUtils.stringify)(item); + return i === index + ? (0, _jestMatcherUtils.INVERTED_COLOR)(stringified) + : stringified; + }) + .join(', ')}]` + ); +exports.printReceivedArrayContainExpectedItem = + printReceivedArrayContainExpectedItem; +const printCloseTo = (receivedDiff, expectedDiff, precision, isNot) => { + const receivedDiffString = (0, _jestMatcherUtils.stringify)(receivedDiff); + const expectedDiffString = receivedDiffString.includes('e') + ? // toExponential arg is number of digits after the decimal point. + expectedDiff.toExponential(0) + : 0 <= precision && precision < 20 + ? // toFixed arg is number of digits after the decimal point. + // It may be a value between 0 and 20 inclusive. + // Implementations may optionally support a larger range of values. + expectedDiff.toFixed(precision + 1) + : (0, _jestMatcherUtils.stringify)(expectedDiff); + return ( + `Expected precision: ${isNot ? ' ' : ''} ${(0, + _jestMatcherUtils.stringify)(precision)}\n` + + `Expected difference: ${isNot ? 'not ' : ''}< ${(0, + _jestMatcherUtils.EXPECTED_COLOR)(expectedDiffString)}\n` + + `Received difference: ${isNot ? ' ' : ''} ${(0, + _jestMatcherUtils.RECEIVED_COLOR)(receivedDiffString)}` + ); +}; +exports.printCloseTo = printCloseTo; +const printExpectedConstructorName = (label, expected) => + `${printConstructorName(label, expected, false, true)}\n`; +exports.printExpectedConstructorName = printExpectedConstructorName; +const printExpectedConstructorNameNot = (label, expected) => + `${printConstructorName(label, expected, true, true)}\n`; +exports.printExpectedConstructorNameNot = printExpectedConstructorNameNot; +const printReceivedConstructorName = (label, received) => + `${printConstructorName(label, received, false, false)}\n`; + +// Do not call function if received is equal to expected. +exports.printReceivedConstructorName = printReceivedConstructorName; +const printReceivedConstructorNameNot = (label, received, expected) => + typeof expected.name === 'string' && + expected.name.length !== 0 && + typeof received.name === 'string' && + received.name.length !== 0 + ? `${printConstructorName(label, received, true, false)} ${ + Object.getPrototypeOf(received) === expected + ? 'extends' + : 'extends … extends' + } ${(0, _jestMatcherUtils.EXPECTED_COLOR)(expected.name)}\n` + : `${printConstructorName(label, received, false, false)}\n`; +exports.printReceivedConstructorNameNot = printReceivedConstructorNameNot; +const printConstructorName = (label, constructor, isNot, isExpected) => + typeof constructor.name !== 'string' + ? `${label} name is not a string` + : constructor.name.length === 0 + ? `${label} name is an empty string` + : `${label}: ${!isNot ? '' : isExpected ? 'not ' : ' '}${ + isExpected + ? (0, _jestMatcherUtils.EXPECTED_COLOR)(constructor.name) + : (0, _jestMatcherUtils.RECEIVED_COLOR)(constructor.name) + }`; diff --git a/node_modules/expect/build/spyMatchers.js b/node_modules/expect/build/spyMatchers.js new file mode 100755 index 0000000..7617cd5 --- /dev/null +++ b/node_modules/expect/build/spyMatchers.js @@ -0,0 +1,1250 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +exports.default = void 0; +var _expectUtils = require('@jest/expect-utils'); +var _jestGetType = require('jest-get-type'); +var _jestMatcherUtils = require('jest-matcher-utils'); +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +// The optional property of matcher context is true if undefined. +const isExpand = expand => expand !== false; +const PRINT_LIMIT = 3; +const NO_ARGUMENTS = 'called with 0 arguments'; +const printExpectedArgs = expected => + expected.length === 0 + ? NO_ARGUMENTS + : expected.map(arg => (0, _jestMatcherUtils.printExpected)(arg)).join(', '); +const printReceivedArgs = (received, expected) => + received.length === 0 + ? NO_ARGUMENTS + : received + .map((arg, i) => + Array.isArray(expected) && + i < expected.length && + isEqualValue(expected[i], arg) + ? printCommon(arg) + : (0, _jestMatcherUtils.printReceived)(arg) + ) + .join(', '); +const printCommon = val => + (0, _jestMatcherUtils.DIM_COLOR)((0, _jestMatcherUtils.stringify)(val)); +const isEqualValue = (expected, received) => + (0, _expectUtils.equals)(expected, received, [_expectUtils.iterableEquality]); +const isEqualCall = (expected, received) => + received.length === expected.length && isEqualValue(expected, received); +const isEqualReturn = (expected, result) => + result.type === 'return' && isEqualValue(expected, result.value); +const countReturns = results => + results.reduce((n, result) => (result.type === 'return' ? n + 1 : n), 0); +const printNumberOfReturns = (countReturns, countCalls) => + `\nNumber of returns: ${(0, _jestMatcherUtils.printReceived)(countReturns)}${ + countCalls !== countReturns + ? `\nNumber of calls: ${(0, _jestMatcherUtils.printReceived)( + countCalls + )}` + : '' + }`; +// Given a label, return a function which given a string, +// right-aligns it preceding the colon in the label. +const getRightAlignedPrinter = label => { + // Assume that the label contains a colon. + const index = label.indexOf(':'); + const suffix = label.slice(index); + return (string, isExpectedCall) => + (isExpectedCall + ? `->${' '.repeat(Math.max(0, index - 2 - string.length))}` + : ' '.repeat(Math.max(index - string.length))) + + string + + suffix; +}; +const printReceivedCallsNegative = ( + expected, + indexedCalls, + isOnlyCall, + iExpectedCall +) => { + if (indexedCalls.length === 0) { + return ''; + } + const label = 'Received: '; + if (isOnlyCall) { + return `${label + printReceivedArgs(indexedCalls[0], expected)}\n`; + } + const printAligned = getRightAlignedPrinter(label); + return `Received\n${indexedCalls.reduce( + (printed, [i, args]) => + `${ + printed + + printAligned(String(i + 1), i === iExpectedCall) + + printReceivedArgs(args, expected) + }\n`, + '' + )}`; +}; +const printExpectedReceivedCallsPositive = ( + expected, + indexedCalls, + expand, + isOnlyCall, + iExpectedCall +) => { + const expectedLine = `Expected: ${printExpectedArgs(expected)}\n`; + if (indexedCalls.length === 0) { + return expectedLine; + } + const label = 'Received: '; + if (isOnlyCall && (iExpectedCall === 0 || iExpectedCall === undefined)) { + const received = indexedCalls[0][1]; + if (isLineDiffableCall(expected, received)) { + // Display diff without indentation. + const lines = [ + (0, _jestMatcherUtils.EXPECTED_COLOR)('- Expected'), + (0, _jestMatcherUtils.RECEIVED_COLOR)('+ Received'), + '' + ]; + const length = Math.max(expected.length, received.length); + for (let i = 0; i < length; i += 1) { + if (i < expected.length && i < received.length) { + if (isEqualValue(expected[i], received[i])) { + lines.push(` ${printCommon(received[i])},`); + continue; + } + if (isLineDiffableArg(expected[i], received[i])) { + const difference = (0, _jestMatcherUtils.diff)( + expected[i], + received[i], + { + expand + } + ); + if ( + typeof difference === 'string' && + difference.includes('- Expected') && + difference.includes('+ Received') + ) { + // Omit annotation in case multiple args have diff. + lines.push(`${difference.split('\n').slice(3).join('\n')},`); + continue; + } + } + } + if (i < expected.length) { + lines.push( + `${(0, _jestMatcherUtils.EXPECTED_COLOR)( + `- ${(0, _jestMatcherUtils.stringify)(expected[i])}` + )},` + ); + } + if (i < received.length) { + lines.push( + `${(0, _jestMatcherUtils.RECEIVED_COLOR)( + `+ ${(0, _jestMatcherUtils.stringify)(received[i])}` + )},` + ); + } + } + return `${lines.join('\n')}\n`; + } + return `${expectedLine + label + printReceivedArgs(received, expected)}\n`; + } + const printAligned = getRightAlignedPrinter(label); + return ( + // eslint-disable-next-line prefer-template + expectedLine + + 'Received\n' + + indexedCalls.reduce((printed, [i, received]) => { + const aligned = printAligned(String(i + 1), i === iExpectedCall); + return `${ + printed + + ((i === iExpectedCall || iExpectedCall === undefined) && + isLineDiffableCall(expected, received) + ? aligned.replace(': ', '\n') + + printDiffCall(expected, received, expand) + : aligned + printReceivedArgs(received, expected)) + }\n`; + }, '') + ); +}; +const indentation = 'Received'.replace(/\w/g, ' '); +const printDiffCall = (expected, received, expand) => + received + .map((arg, i) => { + if (i < expected.length) { + if (isEqualValue(expected[i], arg)) { + return `${indentation} ${printCommon(arg)},`; + } + if (isLineDiffableArg(expected[i], arg)) { + const difference = (0, _jestMatcherUtils.diff)(expected[i], arg, { + expand + }); + if ( + typeof difference === 'string' && + difference.includes('- Expected') && + difference.includes('+ Received') + ) { + // Display diff with indentation. + // Omit annotation in case multiple args have diff. + return `${difference + .split('\n') + .slice(3) + .map(line => indentation + line) + .join('\n')},`; + } + } + } + + // Display + only if received arg has no corresponding expected arg. + return `${ + indentation + + (i < expected.length + ? ` ${(0, _jestMatcherUtils.printReceived)(arg)}` + : (0, _jestMatcherUtils.RECEIVED_COLOR)( + `+ ${(0, _jestMatcherUtils.stringify)(arg)}` + )) + },`; + }) + .join('\n'); +const isLineDiffableCall = (expected, received) => + expected.some( + (arg, i) => i < received.length && isLineDiffableArg(arg, received[i]) + ); + +// Almost redundant with function in jest-matcher-utils, +// except no line diff for any strings. +const isLineDiffableArg = (expected, received) => { + const expectedType = (0, _jestGetType.getType)(expected); + const receivedType = (0, _jestGetType.getType)(received); + if (expectedType !== receivedType) { + return false; + } + if ((0, _jestGetType.isPrimitive)(expected)) { + return false; + } + if ( + expectedType === 'date' || + expectedType === 'function' || + expectedType === 'regexp' + ) { + return false; + } + if (expected instanceof Error && received instanceof Error) { + return false; + } + if ( + expectedType === 'object' && + typeof expected.asymmetricMatch === 'function' + ) { + return false; + } + if ( + receivedType === 'object' && + typeof received.asymmetricMatch === 'function' + ) { + return false; + } + return true; +}; +const printResult = (result, expected) => + result.type === 'throw' + ? 'function call threw an error' + : result.type === 'incomplete' + ? 'function call has not returned yet' + : isEqualValue(expected, result.value) + ? printCommon(result.value) + : (0, _jestMatcherUtils.printReceived)(result.value); +// Return either empty string or one line per indexed result, +// so additional empty line can separate from `Number of returns` which follows. +const printReceivedResults = ( + label, + expected, + indexedResults, + isOnlyCall, + iExpectedCall +) => { + if (indexedResults.length === 0) { + return ''; + } + if (isOnlyCall && (iExpectedCall === 0 || iExpectedCall === undefined)) { + return `${label + printResult(indexedResults[0][1], expected)}\n`; + } + const printAligned = getRightAlignedPrinter(label); + return ( + // eslint-disable-next-line prefer-template + label.replace(':', '').trim() + + '\n' + + indexedResults.reduce( + (printed, [i, result]) => + `${ + printed + + printAligned(String(i + 1), i === iExpectedCall) + + printResult(result, expected) + }\n`, + '' + ) + ); +}; +const createToBeCalledMatcher = matcherName => + function (received, expected) { + const expectedArgument = ''; + const options = { + isNot: this.isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureNoExpected)(expected, matcherName, options); + ensureMockOrSpy(received, matcherName, expectedArgument, options); + const receivedIsSpy = isSpy(received); + const receivedName = receivedIsSpy ? 'spy' : received.getMockName(); + const count = receivedIsSpy + ? received.calls.count() + : received.mock.calls.length; + const calls = receivedIsSpy + ? received.calls.all().map(x => x.args) + : received.mock.calls; + const pass = count > 0; + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected number of calls: ${(0, _jestMatcherUtils.printExpected)( + 0 + )}\n` + + `Received number of calls: ${(0, _jestMatcherUtils.printReceived)( + count + )}\n\n` + + calls + .reduce((lines, args, i) => { + if (lines.length < PRINT_LIMIT) { + lines.push(`${i + 1}: ${printReceivedArgs(args)}`); + } + return lines; + }, []) + .join('\n') + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected number of calls: >= ${(0, _jestMatcherUtils.printExpected)( + 1 + )}\n` + + `Received number of calls: ${(0, _jestMatcherUtils.printReceived)( + count + )}`; + return { + message, + pass + }; + }; +const createToReturnMatcher = matcherName => + function (received, expected) { + const expectedArgument = ''; + const options = { + isNot: this.isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureNoExpected)(expected, matcherName, options); + ensureMock(received, matcherName, expectedArgument, options); + const receivedName = received.getMockName(); + + // Count return values that correspond only to calls that returned + const count = received.mock.results.reduce( + (n, result) => (result.type === 'return' ? n + 1 : n), + 0 + ); + const pass = count > 0; + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected number of returns: ${(0, _jestMatcherUtils.printExpected)( + 0 + )}\n` + + `Received number of returns: ${(0, _jestMatcherUtils.printReceived)( + count + )}\n\n` + + received.mock.results + .reduce((lines, result, i) => { + if (result.type === 'return' && lines.length < PRINT_LIMIT) { + lines.push( + `${i + 1}: ${(0, _jestMatcherUtils.printReceived)( + result.value + )}` + ); + } + return lines; + }, []) + .join('\n') + + (received.mock.calls.length !== count + ? `\n\nReceived number of calls: ${(0, + _jestMatcherUtils.printReceived)(received.mock.calls.length)}` + : '') + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected number of returns: >= ${(0, + _jestMatcherUtils.printExpected)(1)}\n` + + `Received number of returns: ${(0, + _jestMatcherUtils.printReceived)(count)}` + + (received.mock.calls.length !== count + ? `\nReceived number of calls: ${(0, + _jestMatcherUtils.printReceived)(received.mock.calls.length)}` + : ''); + return { + message, + pass + }; + }; +const createToBeCalledTimesMatcher = matcherName => + function (received, expected) { + const expectedArgument = 'expected'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureExpectedIsNonNegativeInteger)( + expected, + matcherName, + options + ); + ensureMockOrSpy(received, matcherName, expectedArgument, options); + const receivedIsSpy = isSpy(received); + const receivedName = receivedIsSpy ? 'spy' : received.getMockName(); + const count = receivedIsSpy + ? received.calls.count() + : received.mock.calls.length; + const pass = count === expected; + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected number of calls: not ${(0, _jestMatcherUtils.printExpected)( + expected + )}` + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected number of calls: ${(0, _jestMatcherUtils.printExpected)( + expected + )}\n` + + `Received number of calls: ${(0, _jestMatcherUtils.printReceived)( + count + )}`; + return { + message, + pass + }; + }; +const createToReturnTimesMatcher = matcherName => + function (received, expected) { + const expectedArgument = 'expected'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + (0, _jestMatcherUtils.ensureExpectedIsNonNegativeInteger)( + expected, + matcherName, + options + ); + ensureMock(received, matcherName, expectedArgument, options); + const receivedName = received.getMockName(); + + // Count return values that correspond only to calls that returned + const count = received.mock.results.reduce( + (n, result) => (result.type === 'return' ? n + 1 : n), + 0 + ); + const pass = count === expected; + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected number of returns: not ${(0, + _jestMatcherUtils.printExpected)(expected)}` + + (received.mock.calls.length !== count + ? `\n\nReceived number of calls: ${(0, + _jestMatcherUtils.printReceived)(received.mock.calls.length)}` + : '') + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected number of returns: ${(0, _jestMatcherUtils.printExpected)( + expected + )}\n` + + `Received number of returns: ${(0, _jestMatcherUtils.printReceived)( + count + )}` + + (received.mock.calls.length !== count + ? `\nReceived number of calls: ${(0, + _jestMatcherUtils.printReceived)(received.mock.calls.length)}` + : ''); + return { + message, + pass + }; + }; +const createToBeCalledWithMatcher = matcherName => + function (received, ...expected) { + const expectedArgument = '...expected'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + ensureMockOrSpy(received, matcherName, expectedArgument, options); + const receivedIsSpy = isSpy(received); + const receivedName = receivedIsSpy ? 'spy' : received.getMockName(); + const calls = receivedIsSpy + ? received.calls.all().map(x => x.args) + : received.mock.calls; + const pass = calls.some(call => isEqualCall(expected, call)); + const message = pass + ? () => { + // Some examples of calls that are equal to expected value. + const indexedCalls = []; + let i = 0; + while (i < calls.length && indexedCalls.length < PRINT_LIMIT) { + if (isEqualCall(expected, calls[i])) { + indexedCalls.push([i, calls[i]]); + } + i += 1; + } + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected: not ${printExpectedArgs(expected)}\n` + + (calls.length === 1 && + (0, _jestMatcherUtils.stringify)(calls[0]) === + (0, _jestMatcherUtils.stringify)(expected) + ? '' + : printReceivedCallsNegative( + expected, + indexedCalls, + calls.length === 1 + )) + + `\nNumber of calls: ${(0, _jestMatcherUtils.printReceived)( + calls.length + )}` + ); + } + : () => { + // Some examples of calls that are not equal to expected value. + const indexedCalls = []; + let i = 0; + while (i < calls.length && indexedCalls.length < PRINT_LIMIT) { + indexedCalls.push([i, calls[i]]); + i += 1; + } + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + printExpectedReceivedCallsPositive( + expected, + indexedCalls, + isExpand(this.expand), + calls.length === 1 + ) + + `\nNumber of calls: ${(0, _jestMatcherUtils.printReceived)( + calls.length + )}` + ); + }; + return { + message, + pass + }; + }; +const createToReturnWithMatcher = matcherName => + function (received, expected) { + const expectedArgument = 'expected'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + ensureMock(received, matcherName, expectedArgument, options); + const receivedName = received.getMockName(); + const {calls, results} = received.mock; + const pass = results.some(result => isEqualReturn(expected, result)); + const message = pass + ? () => { + // Some examples of results that are equal to expected value. + const indexedResults = []; + let i = 0; + while (i < results.length && indexedResults.length < PRINT_LIMIT) { + if (isEqualReturn(expected, results[i])) { + indexedResults.push([i, results[i]]); + } + i += 1; + } + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected: not ${(0, _jestMatcherUtils.printExpected)( + expected + )}\n` + + (results.length === 1 && + results[0].type === 'return' && + (0, _jestMatcherUtils.stringify)(results[0].value) === + (0, _jestMatcherUtils.stringify)(expected) + ? '' + : printReceivedResults( + 'Received: ', + expected, + indexedResults, + results.length === 1 + )) + + printNumberOfReturns(countReturns(results), calls.length) + ); + } + : () => { + // Some examples of results that are not equal to expected value. + const indexedResults = []; + let i = 0; + while (i < results.length && indexedResults.length < PRINT_LIMIT) { + indexedResults.push([i, results[i]]); + i += 1; + } + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected: ${(0, _jestMatcherUtils.printExpected)(expected)}\n` + + printReceivedResults( + 'Received: ', + expected, + indexedResults, + results.length === 1 + ) + + printNumberOfReturns(countReturns(results), calls.length) + ); + }; + return { + message, + pass + }; + }; +const createLastCalledWithMatcher = matcherName => + function (received, ...expected) { + const expectedArgument = '...expected'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + ensureMockOrSpy(received, matcherName, expectedArgument, options); + const receivedIsSpy = isSpy(received); + const receivedName = receivedIsSpy ? 'spy' : received.getMockName(); + const calls = receivedIsSpy + ? received.calls.all().map(x => x.args) + : received.mock.calls; + const iLast = calls.length - 1; + const pass = iLast >= 0 && isEqualCall(expected, calls[iLast]); + const message = pass + ? () => { + const indexedCalls = []; + if (iLast > 0) { + // Display preceding call as context. + indexedCalls.push([iLast - 1, calls[iLast - 1]]); + } + indexedCalls.push([iLast, calls[iLast]]); + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected: not ${printExpectedArgs(expected)}\n` + + (calls.length === 1 && + (0, _jestMatcherUtils.stringify)(calls[0]) === + (0, _jestMatcherUtils.stringify)(expected) + ? '' + : printReceivedCallsNegative( + expected, + indexedCalls, + calls.length === 1, + iLast + )) + + `\nNumber of calls: ${(0, _jestMatcherUtils.printReceived)( + calls.length + )}` + ); + } + : () => { + const indexedCalls = []; + if (iLast >= 0) { + if (iLast > 0) { + let i = iLast - 1; + // Is there a preceding call that is equal to expected args? + while (i >= 0 && !isEqualCall(expected, calls[i])) { + i -= 1; + } + if (i < 0) { + i = iLast - 1; // otherwise, preceding call + } + + indexedCalls.push([i, calls[i]]); + } + indexedCalls.push([iLast, calls[iLast]]); + } + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + printExpectedReceivedCallsPositive( + expected, + indexedCalls, + isExpand(this.expand), + calls.length === 1, + iLast + ) + + `\nNumber of calls: ${(0, _jestMatcherUtils.printReceived)( + calls.length + )}` + ); + }; + return { + message, + pass + }; + }; +const createLastReturnedMatcher = matcherName => + function (received, expected) { + const expectedArgument = 'expected'; + const options = { + isNot: this.isNot, + promise: this.promise + }; + ensureMock(received, matcherName, expectedArgument, options); + const receivedName = received.getMockName(); + const {calls, results} = received.mock; + const iLast = results.length - 1; + const pass = iLast >= 0 && isEqualReturn(expected, results[iLast]); + const message = pass + ? () => { + const indexedResults = []; + if (iLast > 0) { + // Display preceding result as context. + indexedResults.push([iLast - 1, results[iLast - 1]]); + } + indexedResults.push([iLast, results[iLast]]); + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected: not ${(0, _jestMatcherUtils.printExpected)( + expected + )}\n` + + (results.length === 1 && + results[0].type === 'return' && + (0, _jestMatcherUtils.stringify)(results[0].value) === + (0, _jestMatcherUtils.stringify)(expected) + ? '' + : printReceivedResults( + 'Received: ', + expected, + indexedResults, + results.length === 1, + iLast + )) + + printNumberOfReturns(countReturns(results), calls.length) + ); + } + : () => { + const indexedResults = []; + if (iLast >= 0) { + if (iLast > 0) { + let i = iLast - 1; + // Is there a preceding result that is equal to expected value? + while (i >= 0 && !isEqualReturn(expected, results[i])) { + i -= 1; + } + if (i < 0) { + i = iLast - 1; // otherwise, preceding result + } + + indexedResults.push([i, results[i]]); + } + indexedResults.push([iLast, results[iLast]]); + } + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `Expected: ${(0, _jestMatcherUtils.printExpected)(expected)}\n` + + printReceivedResults( + 'Received: ', + expected, + indexedResults, + results.length === 1, + iLast + ) + + printNumberOfReturns(countReturns(results), calls.length) + ); + }; + return { + message, + pass + }; + }; +const createNthCalledWithMatcher = matcherName => + function (received, nth, ...expected) { + const expectedArgument = 'n'; + const options = { + expectedColor: arg => arg, + isNot: this.isNot, + promise: this.promise, + secondArgument: '...expected' + }; + ensureMockOrSpy(received, matcherName, expectedArgument, options); + if (!Number.isSafeInteger(nth) || nth < 1) { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + expectedArgument, + options + ), + `${expectedArgument} must be a positive integer`, + (0, _jestMatcherUtils.printWithType)( + expectedArgument, + nth, + _jestMatcherUtils.stringify + ) + ) + ); + } + const receivedIsSpy = isSpy(received); + const receivedName = receivedIsSpy ? 'spy' : received.getMockName(); + const calls = receivedIsSpy + ? received.calls.all().map(x => x.args) + : received.mock.calls; + const length = calls.length; + const iNth = nth - 1; + const pass = iNth < length && isEqualCall(expected, calls[iNth]); + const message = pass + ? () => { + // Display preceding and following calls, + // in case assertions fails because index is off by one. + const indexedCalls = []; + if (iNth - 1 >= 0) { + indexedCalls.push([iNth - 1, calls[iNth - 1]]); + } + indexedCalls.push([iNth, calls[iNth]]); + if (iNth + 1 < length) { + indexedCalls.push([iNth + 1, calls[iNth + 1]]); + } + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `n: ${nth}\n` + + `Expected: not ${printExpectedArgs(expected)}\n` + + (calls.length === 1 && + (0, _jestMatcherUtils.stringify)(calls[0]) === + (0, _jestMatcherUtils.stringify)(expected) + ? '' + : printReceivedCallsNegative( + expected, + indexedCalls, + calls.length === 1, + iNth + )) + + `\nNumber of calls: ${(0, _jestMatcherUtils.printReceived)( + calls.length + )}` + ); + } + : () => { + // Display preceding and following calls: + // * nearest call that is equal to expected args + // * otherwise, adjacent call + // in case assertions fails because of index, especially off by one. + const indexedCalls = []; + if (iNth < length) { + if (iNth - 1 >= 0) { + let i = iNth - 1; + // Is there a preceding call that is equal to expected args? + while (i >= 0 && !isEqualCall(expected, calls[i])) { + i -= 1; + } + if (i < 0) { + i = iNth - 1; // otherwise, adjacent call + } + + indexedCalls.push([i, calls[i]]); + } + indexedCalls.push([iNth, calls[iNth]]); + if (iNth + 1 < length) { + let i = iNth + 1; + // Is there a following call that is equal to expected args? + while (i < length && !isEqualCall(expected, calls[i])) { + i += 1; + } + if (i >= length) { + i = iNth + 1; // otherwise, adjacent call + } + + indexedCalls.push([i, calls[i]]); + } + } else if (length > 0) { + // The number of received calls is fewer than the expected number. + let i = length - 1; + // Is there a call that is equal to expected args? + while (i >= 0 && !isEqualCall(expected, calls[i])) { + i -= 1; + } + if (i < 0) { + i = length - 1; // otherwise, last call + } + + indexedCalls.push([i, calls[i]]); + } + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `n: ${nth}\n` + + printExpectedReceivedCallsPositive( + expected, + indexedCalls, + isExpand(this.expand), + calls.length === 1, + iNth + ) + + `\nNumber of calls: ${(0, _jestMatcherUtils.printReceived)( + calls.length + )}` + ); + }; + return { + message, + pass + }; + }; +const createNthReturnedWithMatcher = matcherName => + function (received, nth, expected) { + const expectedArgument = 'n'; + const options = { + expectedColor: arg => arg, + isNot: this.isNot, + promise: this.promise, + secondArgument: 'expected' + }; + ensureMock(received, matcherName, expectedArgument, options); + if (!Number.isSafeInteger(nth) || nth < 1) { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + expectedArgument, + options + ), + `${expectedArgument} must be a positive integer`, + (0, _jestMatcherUtils.printWithType)( + expectedArgument, + nth, + _jestMatcherUtils.stringify + ) + ) + ); + } + const receivedName = received.getMockName(); + const {calls, results} = received.mock; + const length = results.length; + const iNth = nth - 1; + const pass = iNth < length && isEqualReturn(expected, results[iNth]); + const message = pass + ? () => { + // Display preceding and following results, + // in case assertions fails because index is off by one. + const indexedResults = []; + if (iNth - 1 >= 0) { + indexedResults.push([iNth - 1, results[iNth - 1]]); + } + indexedResults.push([iNth, results[iNth]]); + if (iNth + 1 < length) { + indexedResults.push([iNth + 1, results[iNth + 1]]); + } + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `n: ${nth}\n` + + `Expected: not ${(0, _jestMatcherUtils.printExpected)( + expected + )}\n` + + (results.length === 1 && + results[0].type === 'return' && + (0, _jestMatcherUtils.stringify)(results[0].value) === + (0, _jestMatcherUtils.stringify)(expected) + ? '' + : printReceivedResults( + 'Received: ', + expected, + indexedResults, + results.length === 1, + iNth + )) + + printNumberOfReturns(countReturns(results), calls.length) + ); + } + : () => { + // Display preceding and following results: + // * nearest result that is equal to expected value + // * otherwise, adjacent result + // in case assertions fails because of index, especially off by one. + const indexedResults = []; + if (iNth < length) { + if (iNth - 1 >= 0) { + let i = iNth - 1; + // Is there a preceding result that is equal to expected value? + while (i >= 0 && !isEqualReturn(expected, results[i])) { + i -= 1; + } + if (i < 0) { + i = iNth - 1; // otherwise, adjacent result + } + + indexedResults.push([i, results[i]]); + } + indexedResults.push([iNth, results[iNth]]); + if (iNth + 1 < length) { + let i = iNth + 1; + // Is there a following result that is equal to expected value? + while (i < length && !isEqualReturn(expected, results[i])) { + i += 1; + } + if (i >= length) { + i = iNth + 1; // otherwise, adjacent result + } + + indexedResults.push([i, results[i]]); + } + } else if (length > 0) { + // The number of received calls is fewer than the expected number. + let i = length - 1; + // Is there a result that is equal to expected value? + while (i >= 0 && !isEqualReturn(expected, results[i])) { + i -= 1; + } + if (i < 0) { + i = length - 1; // otherwise, last result + } + + indexedResults.push([i, results[i]]); + } + return ( + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + receivedName, + expectedArgument, + options + ) + + '\n\n' + + `n: ${nth}\n` + + `Expected: ${(0, _jestMatcherUtils.printExpected)(expected)}\n` + + printReceivedResults( + 'Received: ', + expected, + indexedResults, + results.length === 1, + iNth + ) + + printNumberOfReturns(countReturns(results), calls.length) + ); + }; + return { + message, + pass + }; + }; +const spyMatchers = { + lastCalledWith: createLastCalledWithMatcher('lastCalledWith'), + lastReturnedWith: createLastReturnedMatcher('lastReturnedWith'), + nthCalledWith: createNthCalledWithMatcher('nthCalledWith'), + nthReturnedWith: createNthReturnedWithMatcher('nthReturnedWith'), + toBeCalled: createToBeCalledMatcher('toBeCalled'), + toBeCalledTimes: createToBeCalledTimesMatcher('toBeCalledTimes'), + toBeCalledWith: createToBeCalledWithMatcher('toBeCalledWith'), + toHaveBeenCalled: createToBeCalledMatcher('toHaveBeenCalled'), + toHaveBeenCalledTimes: createToBeCalledTimesMatcher('toHaveBeenCalledTimes'), + toHaveBeenCalledWith: createToBeCalledWithMatcher('toHaveBeenCalledWith'), + toHaveBeenLastCalledWith: createLastCalledWithMatcher( + 'toHaveBeenLastCalledWith' + ), + toHaveBeenNthCalledWith: createNthCalledWithMatcher( + 'toHaveBeenNthCalledWith' + ), + toHaveLastReturnedWith: createLastReturnedMatcher('toHaveLastReturnedWith'), + toHaveNthReturnedWith: createNthReturnedWithMatcher('toHaveNthReturnedWith'), + toHaveReturned: createToReturnMatcher('toHaveReturned'), + toHaveReturnedTimes: createToReturnTimesMatcher('toHaveReturnedTimes'), + toHaveReturnedWith: createToReturnWithMatcher('toHaveReturnedWith'), + toReturn: createToReturnMatcher('toReturn'), + toReturnTimes: createToReturnTimesMatcher('toReturnTimes'), + toReturnWith: createToReturnWithMatcher('toReturnWith') +}; +const isMock = received => + received != null && received._isMockFunction === true; +const isSpy = received => + received != null && + received.calls != null && + typeof received.calls.all === 'function' && + typeof received.calls.count === 'function'; +const ensureMockOrSpy = (received, matcherName, expectedArgument, options) => { + if (!isMock(received) && !isSpy(received)) { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + expectedArgument, + options + ), + `${(0, _jestMatcherUtils.RECEIVED_COLOR)( + 'received' + )} value must be a mock or spy function`, + (0, _jestMatcherUtils.printWithType)( + 'Received', + received, + _jestMatcherUtils.printReceived + ) + ) + ); + } +}; +const ensureMock = (received, matcherName, expectedArgument, options) => { + if (!isMock(received)) { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + expectedArgument, + options + ), + `${(0, _jestMatcherUtils.RECEIVED_COLOR)( + 'received' + )} value must be a mock function`, + (0, _jestMatcherUtils.printWithType)( + 'Received', + received, + _jestMatcherUtils.printReceived + ) + ) + ); + } +}; +var _default = spyMatchers; +exports.default = _default; diff --git a/node_modules/expect/build/toThrowMatchers.js b/node_modules/expect/build/toThrowMatchers.js new file mode 100755 index 0000000..30d7b79 --- /dev/null +++ b/node_modules/expect/build/toThrowMatchers.js @@ -0,0 +1,450 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +exports.default = exports.createMatcher = void 0; +var _expectUtils = require('@jest/expect-utils'); +var _jestMatcherUtils = require('jest-matcher-utils'); +var _jestMessageUtil = require('jest-message-util'); +var _print = require('./print'); +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + +/* eslint-disable local/ban-types-eventually */ + +const DID_NOT_THROW = 'Received function did not throw'; +const getThrown = e => { + const hasMessage = + e !== null && e !== undefined && typeof e.message === 'string'; + if (hasMessage && typeof e.name === 'string' && typeof e.stack === 'string') { + return { + hasMessage, + isError: true, + message: e.message, + value: e + }; + } + return { + hasMessage, + isError: false, + message: hasMessage ? e.message : String(e), + value: e + }; +}; +const createMatcher = (matcherName, fromPromise) => + function (received, expected) { + const options = { + isNot: this.isNot, + promise: this.promise + }; + let thrown = null; + if (fromPromise && (0, _expectUtils.isError)(received)) { + thrown = getThrown(received); + } else { + if (typeof received !== 'function') { + if (!fromPromise) { + const placeholder = expected === undefined ? '' : 'expected'; + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + placeholder, + options + ), + `${(0, _jestMatcherUtils.RECEIVED_COLOR)( + 'received' + )} value must be a function`, + (0, _jestMatcherUtils.printWithType)( + 'Received', + received, + _jestMatcherUtils.printReceived + ) + ) + ); + } + } else { + try { + received(); + } catch (e) { + thrown = getThrown(e); + } + } + } + if (expected === undefined) { + return toThrow(matcherName, options, thrown); + } else if (typeof expected === 'function') { + return toThrowExpectedClass(matcherName, options, thrown, expected); + } else if (typeof expected === 'string') { + return toThrowExpectedString(matcherName, options, thrown, expected); + } else if (expected !== null && typeof expected.test === 'function') { + return toThrowExpectedRegExp(matcherName, options, thrown, expected); + } else if ( + expected !== null && + typeof expected.asymmetricMatch === 'function' + ) { + return toThrowExpectedAsymmetric(matcherName, options, thrown, expected); + } else if (expected !== null && typeof expected === 'object') { + return toThrowExpectedObject(matcherName, options, thrown, expected); + } else { + throw new Error( + (0, _jestMatcherUtils.matcherErrorMessage)( + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ), + `${(0, _jestMatcherUtils.EXPECTED_COLOR)( + 'expected' + )} value must be a string or regular expression or class or error`, + (0, _jestMatcherUtils.printWithType)( + 'Expected', + expected, + _jestMatcherUtils.printExpected + ) + ) + ); + } + }; +exports.createMatcher = createMatcher; +const matchers = { + toThrow: createMatcher('toThrow'), + toThrowError: createMatcher('toThrowError') +}; +const toThrowExpectedRegExp = (matcherName, options, thrown, expected) => { + const pass = thrown !== null && expected.test(thrown.message); + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + formatExpected('Expected pattern: not ', expected) + + (thrown !== null && thrown.hasMessage + ? formatReceived( + 'Received message: ', + thrown, + 'message', + expected + ) + formatStack(thrown) + : formatReceived('Received value: ', thrown, 'value')) + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + formatExpected('Expected pattern: ', expected) + + (thrown === null + ? `\n${DID_NOT_THROW}` + : thrown.hasMessage + ? formatReceived('Received message: ', thrown, 'message') + + formatStack(thrown) + : formatReceived('Received value: ', thrown, 'value')); + return { + message, + pass + }; +}; +const toThrowExpectedAsymmetric = (matcherName, options, thrown, expected) => { + const pass = thrown !== null && expected.asymmetricMatch(thrown.value); + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + formatExpected('Expected asymmetric matcher: not ', expected) + + '\n' + + (thrown !== null && thrown.hasMessage + ? formatReceived('Received name: ', thrown, 'name') + + formatReceived('Received message: ', thrown, 'message') + + formatStack(thrown) + : formatReceived('Thrown value: ', thrown, 'value')) + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + formatExpected('Expected asymmetric matcher: ', expected) + + '\n' + + (thrown === null + ? DID_NOT_THROW + : thrown.hasMessage + ? formatReceived('Received name: ', thrown, 'name') + + formatReceived('Received message: ', thrown, 'message') + + formatStack(thrown) + : formatReceived('Thrown value: ', thrown, 'value')); + return { + message, + pass + }; +}; +const toThrowExpectedObject = (matcherName, options, thrown, expected) => { + const pass = thrown !== null && thrown.message === expected.message; + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + formatExpected('Expected message: not ', expected.message) + + (thrown !== null && thrown.hasMessage + ? formatStack(thrown) + : formatReceived('Received value: ', thrown, 'value')) + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + (thrown === null + ? // eslint-disable-next-line prefer-template + formatExpected('Expected message: ', expected.message) + + '\n' + + DID_NOT_THROW + : thrown.hasMessage + ? // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.printDiffOrStringify)( + expected.message, + thrown.message, + 'Expected message', + 'Received message', + true + ) + + '\n' + + formatStack(thrown) + : formatExpected('Expected message: ', expected.message) + + formatReceived('Received value: ', thrown, 'value')); + return { + message, + pass + }; +}; +const toThrowExpectedClass = (matcherName, options, thrown, expected) => { + const pass = thrown !== null && thrown.value instanceof expected; + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + (0, _print.printExpectedConstructorNameNot)( + 'Expected constructor', + expected + ) + + (thrown !== null && + thrown.value != null && + typeof thrown.value.constructor === 'function' && + thrown.value.constructor !== expected + ? (0, _print.printReceivedConstructorNameNot)( + 'Received constructor', + thrown.value.constructor, + expected + ) + : '') + + '\n' + + (thrown !== null && thrown.hasMessage + ? formatReceived('Received message: ', thrown, 'message') + + formatStack(thrown) + : formatReceived('Received value: ', thrown, 'value')) + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + (0, _print.printExpectedConstructorName)( + 'Expected constructor', + expected + ) + + (thrown === null + ? `\n${DID_NOT_THROW}` + : `${ + thrown.value != null && + typeof thrown.value.constructor === 'function' + ? (0, _print.printReceivedConstructorName)( + 'Received constructor', + thrown.value.constructor + ) + : '' + }\n${ + thrown.hasMessage + ? formatReceived('Received message: ', thrown, 'message') + + formatStack(thrown) + : formatReceived('Received value: ', thrown, 'value') + }`); + return { + message, + pass + }; +}; +const toThrowExpectedString = (matcherName, options, thrown, expected) => { + const pass = thrown !== null && thrown.message.includes(expected); + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + formatExpected('Expected substring: not ', expected) + + (thrown !== null && thrown.hasMessage + ? formatReceived( + 'Received message: ', + thrown, + 'message', + expected + ) + formatStack(thrown) + : formatReceived('Received value: ', thrown, 'value')) + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + undefined, + options + ) + + '\n\n' + + formatExpected('Expected substring: ', expected) + + (thrown === null + ? `\n${DID_NOT_THROW}` + : thrown.hasMessage + ? formatReceived('Received message: ', thrown, 'message') + + formatStack(thrown) + : formatReceived('Received value: ', thrown, 'value')); + return { + message, + pass + }; +}; +const toThrow = (matcherName, options, thrown) => { + const pass = thrown !== null; + const message = pass + ? () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + '', + options + ) + + '\n\n' + + (thrown !== null && thrown.hasMessage + ? formatReceived('Error name: ', thrown, 'name') + + formatReceived('Error message: ', thrown, 'message') + + formatStack(thrown) + : formatReceived('Thrown value: ', thrown, 'value')) + : () => + // eslint-disable-next-line prefer-template + (0, _jestMatcherUtils.matcherHint)( + matcherName, + undefined, + '', + options + ) + + '\n\n' + + DID_NOT_THROW; + return { + message, + pass + }; +}; +const formatExpected = (label, expected) => + `${label + (0, _jestMatcherUtils.printExpected)(expected)}\n`; +const formatReceived = (label, thrown, key, expected) => { + if (thrown === null) { + return ''; + } + if (key === 'message') { + const message = thrown.message; + if (typeof expected === 'string') { + const index = message.indexOf(expected); + if (index !== -1) { + return `${ + label + + (0, _print.printReceivedStringContainExpectedSubstring)( + message, + index, + expected.length + ) + }\n`; + } + } else if (expected instanceof RegExp) { + return `${ + label + + (0, _print.printReceivedStringContainExpectedResult)( + message, + typeof expected.exec === 'function' ? expected.exec(message) : null + ) + }\n`; + } + return `${label + (0, _jestMatcherUtils.printReceived)(message)}\n`; + } + if (key === 'name') { + return thrown.isError + ? `${label + (0, _jestMatcherUtils.printReceived)(thrown.value.name)}\n` + : ''; + } + if (key === 'value') { + return thrown.isError + ? '' + : `${label + (0, _jestMatcherUtils.printReceived)(thrown.value)}\n`; + } + return ''; +}; +const formatStack = thrown => + thrown === null || !thrown.isError + ? '' + : (0, _jestMessageUtil.formatStackTrace)( + (0, _jestMessageUtil.separateMessageFromStack)(thrown.value.stack) + .stack, + { + rootDir: process.cwd(), + testMatch: [] + }, + { + noStackTrace: false + } + ); +var _default = matchers; +exports.default = _default; diff --git a/node_modules/expect/build/types.js b/node_modules/expect/build/types.js new file mode 100755 index 0000000..7a223e4 --- /dev/null +++ b/node_modules/expect/build/types.js @@ -0,0 +1,3 @@ +'use strict'; + +var _jestMatchersObject = require('./jestMatchersObject'); diff --git a/node_modules/expect/package.json b/node_modules/expect/package.json new file mode 100755 index 0000000..67675c3 --- /dev/null +++ b/node_modules/expect/package.json @@ -0,0 +1,43 @@ +{ + "name": "expect", + "version": "29.3.1", + "repository": { + "type": "git", + "url": "https://github.com/facebook/jest.git", + "directory": "packages/expect" + }, + "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", + "./build/matchers": "./build/matchers.js", + "./build/toThrowMatchers": "./build/toThrowMatchers.js" + }, + "dependencies": { + "@jest/expect-utils": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1" + }, + "devDependencies": { + "@fast-check/jest": "^1.3.0", + "@jest/test-utils": "^29.3.1", + "@tsd/typescript": "~4.8.2", + "chalk": "^4.0.0", + "immutable": "^4.0.0", + "tsd-lite": "^0.6.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "05deb8393c4ad71e19be2567b704dfd3a2ab5fc9" +} diff --git a/node_modules/express-rate-limit/changelog.md b/node_modules/express-rate-limit/changelog.md old mode 100644 new mode 100755 diff --git a/node_modules/express-rate-limit/dist/index.cjs b/node_modules/express-rate-limit/dist/index.cjs old mode 100644 new mode 100755 diff --git a/node_modules/express-rate-limit/dist/index.d.ts b/node_modules/express-rate-limit/dist/index.d.ts old mode 100644 new mode 100755 diff --git a/node_modules/express-rate-limit/dist/index.mjs b/node_modules/express-rate-limit/dist/index.mjs old mode 100644 new mode 100755 diff --git a/node_modules/express-rate-limit/license.md b/node_modules/express-rate-limit/license.md old mode 100644 new mode 100755 diff --git a/node_modules/express-rate-limit/package.json b/node_modules/express-rate-limit/package.json old mode 100644 new mode 100755 diff --git a/node_modules/express-rate-limit/readme.md b/node_modules/express-rate-limit/readme.md old mode 100644 new mode 100755 diff --git a/node_modules/express-rate-limit/tsconfig.json b/node_modules/express-rate-limit/tsconfig.json old mode 100644 new mode 100755 diff --git a/node_modules/express/History.md b/node_modules/express/History.md old mode 100644 new mode 100755 diff --git a/node_modules/express/LICENSE b/node_modules/express/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/express/Readme.md b/node_modules/express/Readme.md old mode 100644 new mode 100755 diff --git a/node_modules/express/index.js b/node_modules/express/index.js old mode 100644 new mode 100755 diff --git a/node_modules/express/lib/application.js b/node_modules/express/lib/application.js old mode 100644 new mode 100755 diff --git a/node_modules/express/lib/express.js b/node_modules/express/lib/express.js old mode 100644 new mode 100755 diff --git a/node_modules/express/lib/middleware/init.js b/node_modules/express/lib/middleware/init.js old mode 100644 new mode 100755 diff --git a/node_modules/express/lib/middleware/query.js b/node_modules/express/lib/middleware/query.js old mode 100644 new mode 100755 diff --git a/node_modules/express/lib/request.js b/node_modules/express/lib/request.js old mode 100644 new mode 100755 diff --git a/node_modules/express/lib/response.js b/node_modules/express/lib/response.js old mode 100644 new mode 100755 diff --git a/node_modules/express/lib/router/index.js b/node_modules/express/lib/router/index.js old mode 100644 new mode 100755 diff --git a/node_modules/express/lib/router/layer.js b/node_modules/express/lib/router/layer.js old mode 100644 new mode 100755 diff --git a/node_modules/express/lib/router/route.js b/node_modules/express/lib/router/route.js old mode 100644 new mode 100755 diff --git a/node_modules/express/lib/utils.js b/node_modules/express/lib/utils.js old mode 100644 new mode 100755 diff --git a/node_modules/express/lib/view.js b/node_modules/express/lib/view.js old mode 100644 new mode 100755 diff --git a/node_modules/express/package.json b/node_modules/express/package.json old mode 100644 new mode 100755 diff --git a/node_modules/fast-json-stable-stringify/.eslintrc.yml b/node_modules/fast-json-stable-stringify/.eslintrc.yml new file mode 100755 index 0000000..1c77b0d --- /dev/null +++ b/node_modules/fast-json-stable-stringify/.eslintrc.yml @@ -0,0 +1,26 @@ +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/node_modules/fast-json-stable-stringify/.github/FUNDING.yml b/node_modules/fast-json-stable-stringify/.github/FUNDING.yml new file mode 100755 index 0000000..61f9daa --- /dev/null +++ b/node_modules/fast-json-stable-stringify/.github/FUNDING.yml @@ -0,0 +1 @@ +tidelift: "npm/fast-json-stable-stringify" diff --git a/node_modules/fast-json-stable-stringify/.travis.yml b/node_modules/fast-json-stable-stringify/.travis.yml new file mode 100755 index 0000000..b61e8f0 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +node_js: + - "8" + - "10" + - "12" + - "13" +after_script: + - coveralls < coverage/lcov.info diff --git a/node_modules/fast-json-stable-stringify/LICENSE b/node_modules/fast-json-stable-stringify/LICENSE new file mode 100755 index 0000000..c932223 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/LICENSE @@ -0,0 +1,21 @@ +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/node_modules/fast-json-stable-stringify/README.md b/node_modules/fast-json-stable-stringify/README.md new file mode 100755 index 0000000..02cf49f --- /dev/null +++ b/node_modules/fast-json-stable-stringify/README.md @@ -0,0 +1,131 @@ +# 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/node_modules/fast-json-stable-stringify/benchmark/index.js b/node_modules/fast-json-stable-stringify/benchmark/index.js new file mode 100755 index 0000000..e725f9f --- /dev/null +++ b/node_modules/fast-json-stable-stringify/benchmark/index.js @@ -0,0 +1,31 @@ +'use strict'; + +const Benchmark = require('benchmark'); +const suite = new Benchmark.Suite; +const testData = require('./test.json'); + + +const stringifyPackages = { + // 'JSON.stringify': JSON.stringify, + 'fast-json-stable-stringify': require('../index'), + 'json-stable-stringify': true, + 'fast-stable-stringify': true, + 'faster-stable-stringify': true +}; + + +for (const name in stringifyPackages) { + let func = stringifyPackages[name]; + if (func === true) func = require(name); + + suite.add(name, function() { + func(testData); + }); +} + +suite + .on('cycle', (event) => console.log(String(event.target))) + .on('complete', function () { + console.log('The fastest is ' + this.filter('fastest').map('name')); + }) + .run({async: true}); diff --git a/node_modules/fast-json-stable-stringify/benchmark/test.json b/node_modules/fast-json-stable-stringify/benchmark/test.json new file mode 100755 index 0000000..c9118c1 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/benchmark/test.json @@ -0,0 +1,137 @@ +[ + { + "_id": "59ef4a83ee8364808d761beb", + "index": 0, + "guid": "e50ffae9-7128-4148-9ee5-40c3fc523c5d", + "isActive": false, + "balance": "$2,341.81", + "picture": "http://placehold.it/32x32", + "age": 28, + "eyeColor": "brown", + "name": "Carey Savage", + "gender": "female", + "company": "VERAQ", + "email": "careysavage@veraq.com", + "phone": "+1 (897) 574-3014", + "address": "458 Willow Street, Henrietta, California, 7234", + "about": "Nisi reprehenderit nulla ad officia pariatur non dolore laboris irure cupidatat laborum. Minim eu ex Lorem adipisicing exercitation irure minim sunt est enim mollit incididunt voluptate nulla. Ut mollit anim reprehenderit et aliqua ex esse aliquip. Aute sit duis deserunt do incididunt consequat minim qui dolor commodo deserunt et voluptate.\r\n", + "registered": "2014-05-21T01:56:51 -01:00", + "latitude": 63.89502, + "longitude": 62.369807, + "tags": [ + "nostrud", + "nisi", + "consectetur", + "ullamco", + "cupidatat", + "culpa", + "commodo" + ], + "friends": [ + { + "id": 0, + "name": "Henry Walls" + }, + { + "id": 1, + "name": "Janice Baker" + }, + { + "id": 2, + "name": "Russell Bush" + } + ], + "greeting": "Hello, Carey Savage! You have 4 unread messages.", + "favoriteFruit": "banana" + }, + { + "_id": "59ef4a83ff5774a691454e89", + "index": 1, + "guid": "2bee9efc-4095-4c2e-87ef-d08c8054c89d", + "isActive": true, + "balance": "$1,618.15", + "picture": "http://placehold.it/32x32", + "age": 35, + "eyeColor": "blue", + "name": "Elinor Pearson", + "gender": "female", + "company": "FLEXIGEN", + "email": "elinorpearson@flexigen.com", + "phone": "+1 (923) 548-3751", + "address": "600 Bayview Avenue, Draper, Montana, 3088", + "about": "Mollit commodo ea sit Lorem velit. Irure anim esse Lorem sint quis officia ut. Aliqua nisi dolore in aute deserunt mollit ex ea in mollit.\r\n", + "registered": "2017-04-22T07:58:41 -01:00", + "latitude": -87.824919, + "longitude": 69.538927, + "tags": [ + "fugiat", + "labore", + "proident", + "quis", + "eiusmod", + "qui", + "est" + ], + "friends": [ + { + "id": 0, + "name": "Massey Wagner" + }, + { + "id": 1, + "name": "Marcella Ferrell" + }, + { + "id": 2, + "name": "Evans Mckee" + } + ], + "greeting": "Hello, Elinor Pearson! You have 3 unread messages.", + "favoriteFruit": "strawberry" + }, + { + "_id": "59ef4a839ec8a4be4430b36b", + "index": 2, + "guid": "ddd6e8c0-95bd-416d-8b46-a768d6363809", + "isActive": false, + "balance": "$2,046.95", + "picture": "http://placehold.it/32x32", + "age": 40, + "eyeColor": "green", + "name": "Irwin Davidson", + "gender": "male", + "company": "DANJA", + "email": "irwindavidson@danja.com", + "phone": "+1 (883) 537-2041", + "address": "439 Cook Street, Chapin, Kentucky, 7398", + "about": "Irure velit non commodo aliqua exercitation ut nostrud minim magna. Dolor ad ad ut irure eu. Non pariatur dolor eiusmod ipsum do et exercitation cillum. Et amet laboris minim eiusmod ullamco magna ea reprehenderit proident sunt.\r\n", + "registered": "2016-09-01T07:49:08 -01:00", + "latitude": -49.803812, + "longitude": 104.93279, + "tags": [ + "consequat", + "enim", + "quis", + "magna", + "est", + "culpa", + "tempor" + ], + "friends": [ + { + "id": 0, + "name": "Ruth Hansen" + }, + { + "id": 1, + "name": "Kathrine Austin" + }, + { + "id": 2, + "name": "Rivera Munoz" + } + ], + "greeting": "Hello, Irwin Davidson! You have 2 unread messages.", + "favoriteFruit": "banana" + } +] diff --git a/node_modules/fast-json-stable-stringify/example/key_cmp.js b/node_modules/fast-json-stable-stringify/example/key_cmp.js new file mode 100755 index 0000000..d5f6675 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/example/key_cmp.js @@ -0,0 +1,7 @@ +var stringify = require('../'); + +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); diff --git a/node_modules/fast-json-stable-stringify/example/nested.js b/node_modules/fast-json-stable-stringify/example/nested.js new file mode 100755 index 0000000..9a672fc --- /dev/null +++ b/node_modules/fast-json-stable-stringify/example/nested.js @@ -0,0 +1,3 @@ +var stringify = require('../'); +var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 }; +console.log(stringify(obj)); diff --git a/node_modules/fast-json-stable-stringify/example/str.js b/node_modules/fast-json-stable-stringify/example/str.js new file mode 100755 index 0000000..9b4b3cd --- /dev/null +++ b/node_modules/fast-json-stable-stringify/example/str.js @@ -0,0 +1,3 @@ +var stringify = require('../'); +var obj = { c: 6, b: [4,5], a: 3 }; +console.log(stringify(obj)); diff --git a/node_modules/fast-json-stable-stringify/example/value_cmp.js b/node_modules/fast-json-stable-stringify/example/value_cmp.js new file mode 100755 index 0000000..09f1c5f --- /dev/null +++ b/node_modules/fast-json-stable-stringify/example/value_cmp.js @@ -0,0 +1,7 @@ +var stringify = require('../'); + +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); diff --git a/node_modules/fast-json-stable-stringify/index.d.ts b/node_modules/fast-json-stable-stringify/index.d.ts new file mode 100755 index 0000000..23e46ca --- /dev/null +++ b/node_modules/fast-json-stable-stringify/index.d.ts @@ -0,0 +1,4 @@ +declare module 'fast-json-stable-stringify' { + function stringify(obj: any): string; + export = stringify; +} diff --git a/node_modules/fast-json-stable-stringify/index.js b/node_modules/fast-json-stable-stringify/index.js new file mode 100755 index 0000000..c44e6a4 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/index.js @@ -0,0 +1,59 @@ +'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/node_modules/fast-json-stable-stringify/package.json b/node_modules/fast-json-stable-stringify/package.json new file mode 100755 index 0000000..ad2c8bf --- /dev/null +++ b/node_modules/fast-json-stable-stringify/package.json @@ -0,0 +1,52 @@ +{ + "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/node_modules/fast-json-stable-stringify/test/cmp.js b/node_modules/fast-json-stable-stringify/test/cmp.js new file mode 100755 index 0000000..4efd6b5 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/test/cmp.js @@ -0,0 +1,13 @@ +'use strict'; + +var test = require('tape'); +var stringify = require('../'); + +test('custom comparison function', function (t) { + t.plan(1); + 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; + }); + t.equal(s, '{"c":8,"b":[{"z":6,"y":5,"x":4},7],"a":3}'); +}); diff --git a/node_modules/fast-json-stable-stringify/test/nested.js b/node_modules/fast-json-stable-stringify/test/nested.js new file mode 100755 index 0000000..167a358 --- /dev/null +++ b/node_modules/fast-json-stable-stringify/test/nested.js @@ -0,0 +1,44 @@ +'use strict'; + +var test = require('tape'); +var stringify = require('../'); + +test('nested', function (t) { + t.plan(1); + var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 }; + t.equal(stringify(obj), '{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8}'); +}); + +test('cyclic (default)', function (t) { + t.plan(1); + var one = { a: 1 }; + var two = { a: 2, one: one }; + one.two = two; + try { + stringify(one); + } catch (ex) { + t.equal(ex.toString(), 'TypeError: Converting circular structure to JSON'); + } +}); + +test('cyclic (specifically allowed)', function (t) { + t.plan(1); + var one = { a: 1 }; + var two = { a: 2, one: one }; + one.two = two; + t.equal(stringify(one, {cycles:true}), '{"a":1,"two":{"a":2,"one":"__cycle__"}}'); +}); + +test('repeated non-cyclic value', function(t) { + t.plan(1); + var one = { x: 1 }; + var two = { a: one, b: one }; + t.equal(stringify(two), '{"a":{"x":1},"b":{"x":1}}'); +}); + +test('acyclic but with reused obj-property pointers', function (t) { + t.plan(1); + var x = { a: 1 }; + var y = { b: x, c: x }; + t.equal(stringify(y), '{"b":{"a":1},"c":{"a":1}}'); +}); diff --git a/node_modules/fast-json-stable-stringify/test/str.js b/node_modules/fast-json-stable-stringify/test/str.js new file mode 100755 index 0000000..99a9ade --- /dev/null +++ b/node_modules/fast-json-stable-stringify/test/str.js @@ -0,0 +1,46 @@ +'use strict'; + +var test = require('tape'); +var stringify = require('../'); + +test('simple object', function (t) { + t.plan(1); + var obj = { c: 6, b: [4,5], a: 3, z: null }; + t.equal(stringify(obj), '{"a":3,"b":[4,5],"c":6,"z":null}'); +}); + +test('object with undefined', function (t) { + t.plan(1); + var obj = { a: 3, z: undefined }; + t.equal(stringify(obj), '{"a":3}'); +}); + +test('object with null', function (t) { + t.plan(1); + var obj = { a: 3, z: null }; + t.equal(stringify(obj), '{"a":3,"z":null}'); +}); + +test('object with NaN and Infinity', function (t) { + t.plan(1); + var obj = { a: 3, b: NaN, c: Infinity }; + t.equal(stringify(obj), '{"a":3,"b":null,"c":null}'); +}); + +test('array with undefined', function (t) { + t.plan(1); + var obj = [4, undefined, 6]; + t.equal(stringify(obj), '[4,null,6]'); +}); + +test('object with empty string', function (t) { + t.plan(1); + var obj = { a: 3, z: '' }; + t.equal(stringify(obj), '{"a":3,"z":""}'); +}); + +test('array with empty string', function (t) { + t.plan(1); + var obj = [4, '', 6]; + t.equal(stringify(obj), '[4,"",6]'); +}); diff --git a/node_modules/fast-json-stable-stringify/test/to-json.js b/node_modules/fast-json-stable-stringify/test/to-json.js new file mode 100755 index 0000000..2fb2cfa --- /dev/null +++ b/node_modules/fast-json-stable-stringify/test/to-json.js @@ -0,0 +1,22 @@ +'use strict'; + +var test = require('tape'); +var stringify = require('../'); + +test('toJSON function', function (t) { + t.plan(1); + var obj = { one: 1, two: 2, toJSON: function() { return { one: 1 }; } }; + t.equal(stringify(obj), '{"one":1}' ); +}); + +test('toJSON returns string', function (t) { + t.plan(1); + var obj = { one: 1, two: 2, toJSON: function() { return 'one'; } }; + t.equal(stringify(obj), '"one"'); +}); + +test('toJSON returns array', function (t) { + t.plan(1); + var obj = { one: 1, two: 2, toJSON: function() { return ['one']; } }; + t.equal(stringify(obj), '["one"]'); +}); diff --git a/node_modules/fast-levenshtein/LICENSE.md b/node_modules/fast-levenshtein/LICENSE.md old mode 100644 new mode 100755 diff --git a/node_modules/fast-levenshtein/README.md b/node_modules/fast-levenshtein/README.md old mode 100644 new mode 100755 diff --git a/node_modules/fast-levenshtein/levenshtein.js b/node_modules/fast-levenshtein/levenshtein.js old mode 100644 new mode 100755 diff --git a/node_modules/fast-levenshtein/package.json b/node_modules/fast-levenshtein/package.json old mode 100644 new mode 100755 diff --git a/node_modules/fb-watchman/README.md b/node_modules/fb-watchman/README.md new file mode 100755 index 0000000..33da0ad --- /dev/null +++ b/node_modules/fb-watchman/README.md @@ -0,0 +1,34 @@ +# fb-watchman + +`fb-watchman` is a filesystem watcher that uses the +[Watchman](https://facebook.github.io/watchman/) file watching service from +Facebook. + +Watchman provides file change notification services using very +efficient recursive watches and also allows more advanced change matching and +filesystem tree querying operations using +[a powerful expression syntax](https://facebook.github.io/watchman/docs/file-query.html#expressions). + +## Install + +You should [install Watchman]( +https://facebook.github.io/watchman/docs/install.html) to make the most of this +module. + +Then simply: + +``` +$ npm install fb-watchman +``` + +## Key Concepts + +- Watchman recursively watches directories. +- Each watched directory is called a `root`. +- You must initiate a `watch` on a `root` using the `watch-project` command prior to subscribing to changes +- Rather than separately watching many sibling directories, `watch-project` consolidates and re-uses existing watches relative to a project root (the location of your `.watchmanconfig` or source control repository root) +- change notifications are relative to the project root + +## How do I use it? + +[Read the NodeJS watchman documentation](https://facebook.github.io/watchman/docs/nodejs.html) diff --git a/node_modules/fb-watchman/index.js b/node_modules/fb-watchman/index.js new file mode 100755 index 0000000..388bcc6 --- /dev/null +++ b/node_modules/fb-watchman/index.js @@ -0,0 +1,327 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var net = require('net'); +var EE = require('events').EventEmitter; +var util = require('util'); +var childProcess = require('child_process'); +var bser = require('bser'); + +// We'll emit the responses to these when they get sent down to us +var unilateralTags = ['subscription', 'log']; + +/** + * @param options An object with the following optional keys: + * * 'watchmanBinaryPath' (string) Absolute path to the watchman binary. + * If not provided, the Client locates the binary using the PATH specified + * by the node child_process's default env. + */ +function Client(options) { + var self = this; + EE.call(this); + + this.watchmanBinaryPath = 'watchman'; + if (options && options.watchmanBinaryPath) { + this.watchmanBinaryPath = options.watchmanBinaryPath.trim(); + }; + this.commands = []; +} +util.inherits(Client, EE); + +module.exports.Client = Client; + +// Try to send the next queued command, if any +Client.prototype.sendNextCommand = function() { + if (this.currentCommand) { + // There's a command pending response, don't send this new one yet + return; + } + + this.currentCommand = this.commands.shift(); + if (!this.currentCommand) { + // No further commands are queued + return; + } + + this.socket.write(bser.dumpToBuffer(this.currentCommand.cmd)); +} + +Client.prototype.cancelCommands = function(why) { + var error = new Error(why); + + // Steal all pending commands before we start cancellation, in + // case something decides to schedule more commands + var cmds = this.commands; + this.commands = []; + + if (this.currentCommand) { + cmds.unshift(this.currentCommand); + this.currentCommand = null; + } + + // Synthesize an error condition for any commands that were queued + cmds.forEach(function(cmd) { + cmd.cb(error); + }); +} + +Client.prototype.connect = function() { + var self = this; + + function makeSock(sockname) { + // bunser will decode the watchman BSER protocol for us + self.bunser = new bser.BunserBuf(); + // For each decoded line: + self.bunser.on('value', function(obj) { + // Figure out if this is a unliteral response or if it is the + // response portion of a request-response sequence. At the time + // of writing, there are only two possible unilateral responses. + var unilateral = false; + for (var i = 0; i < unilateralTags.length; i++) { + var tag = unilateralTags[i]; + if (tag in obj) { + unilateral = tag; + } + } + + if (unilateral) { + self.emit(unilateral, obj); + } else if (self.currentCommand) { + var cmd = self.currentCommand; + self.currentCommand = null; + if ('error' in obj) { + var error = new Error(obj.error); + error.watchmanResponse = obj; + cmd.cb(error); + } else { + cmd.cb(null, obj); + } + } + + // See if we can dispatch the next queued command, if any + self.sendNextCommand(); + }); + self.bunser.on('error', function(err) { + self.emit('error', err); + }); + + self.socket = net.createConnection(sockname); + self.socket.on('connect', function() { + self.connecting = false; + self.emit('connect'); + self.sendNextCommand(); + }); + self.socket.on('error', function(err) { + self.connecting = false; + self.emit('error', err); + }); + self.socket.on('data', function(buf) { + if (self.bunser) { + self.bunser.append(buf); + } + }); + self.socket.on('end', function() { + self.socket = null; + self.bunser = null; + self.cancelCommands('The watchman connection was closed'); + self.emit('end'); + }); + } + + // triggers will export the sock path to the environment. + // If we're invoked in such a way, we can simply pick up the + // definition from the environment and avoid having to fork off + // a process to figure it out + if (process.env.WATCHMAN_SOCK) { + makeSock(process.env.WATCHMAN_SOCK); + return; + } + + // We need to ask the client binary where to find it. + // This will cause the service to start for us if it isn't + // already running. + var args = ['--no-pretty', 'get-sockname']; + + // We use the more elaborate spawn rather than exec because there + // are some error cases on Windows where process spawning can hang. + // It is desirable to pipe stderr directly to stderr live so that + // we can discover the problem. + var proc = null; + var spawnFailed = false; + + function spawnError(error) { + if (spawnFailed) { + // For ENOENT, proc 'close' will also trigger with a negative code, + // let's suppress that second error. + return; + } + spawnFailed = true; + if (error.code === 'EACCES' || error.errno === 'EACCES') { + error.message = 'The Watchman CLI is installed but cannot ' + + 'be spawned because of a permission problem'; + } else if (error.code === 'ENOENT' || error.errno === 'ENOENT') { + error.message = 'Watchman was not found in PATH. See ' + + 'https://facebook.github.io/watchman/docs/install.html ' + + 'for installation instructions'; + } + console.error('Watchman: ', error.message); + self.emit('error', error); + } + + try { + proc = childProcess.spawn(this.watchmanBinaryPath, args, { + stdio: ['ignore', 'pipe', 'pipe'], + windowsHide: true + }); + } catch (error) { + spawnError(error); + return; + } + + var stdout = []; + var stderr = []; + proc.stdout.on('data', function(data) { + stdout.push(data); + }); + proc.stderr.on('data', function(data) { + data = data.toString('utf8'); + stderr.push(data); + console.error(data); + }); + proc.on('error', function(error) { + spawnError(error); + }); + + proc.on('close', function (code, signal) { + if (code !== 0) { + spawnError(new Error( + self.watchmanBinaryPath + ' ' + args.join(' ') + + ' returned with exit code=' + code + ', signal=' + + signal + ', stderr= ' + stderr.join(''))); + return; + } + try { + var obj = JSON.parse(stdout.join('')); + if ('error' in obj) { + var error = new Error(obj.error); + error.watchmanResponse = obj; + self.emit('error', error); + return; + } + makeSock(obj.sockname); + } catch (e) { + self.emit('error', e); + } + }); +} + +Client.prototype.command = function(args, done) { + done = done || function() {}; + + // Queue up the command + this.commands.push({cmd: args, cb: done}); + + // Establish a connection if we don't already have one + if (!this.socket) { + if (!this.connecting) { + this.connecting = true; + this.connect(); + return; + } + return; + } + + // If we're already connected and idle, try sending the command immediately + this.sendNextCommand(); +} + +var cap_versions = { + "cmd-watch-del-all": "3.1.1", + "cmd-watch-project": "3.1", + "relative_root": "3.3", + "term-dirname": "3.1", + "term-idirname": "3.1", + "wildmatch": "3.7", +} + +// Compares a vs b, returns < 0 if a < b, > 0 if b > b, 0 if a == b +function vers_compare(a, b) { + a = a.split('.'); + b = b.split('.'); + for (var i = 0; i < 3; i++) { + var d = parseInt(a[i] || '0') - parseInt(b[i] || '0'); + if (d != 0) { + return d; + } + } + return 0; // Equal +} + +function have_cap(vers, name) { + if (name in cap_versions) { + return vers_compare(vers, cap_versions[name]) >= 0; + } + return false; +} + +// This is a helper that we expose for testing purposes +Client.prototype._synthesizeCapabilityCheck = function( + resp, optional, required) { + resp.capabilities = {} + var version = resp.version; + optional.forEach(function (name) { + resp.capabilities[name] = have_cap(version, name); + }); + required.forEach(function (name) { + var have = have_cap(version, name); + resp.capabilities[name] = have; + if (!have) { + resp.error = 'client required capability `' + name + + '` is not supported by this server'; + } + }); + return resp; +} + +Client.prototype.capabilityCheck = function(caps, done) { + var optional = caps.optional || []; + var required = caps.required || []; + var self = this; + this.command(['version', { + optional: optional, + required: required + }], function (error, resp) { + if (error) { + done(error); + return; + } + if (!('capabilities' in resp)) { + // Server doesn't support capabilities, so we need to + // synthesize the results based on the version + resp = self._synthesizeCapabilityCheck(resp, optional, required); + if (resp.error) { + error = new Error(resp.error); + error.watchmanResponse = resp; + done(error); + return; + } + } + done(null, resp); + }); +} + +// Close the connection to the service +Client.prototype.end = function() { + this.cancelCommands('The client was ended'); + if (this.socket) { + this.socket.end(); + this.socket = null; + } + this.bunser = null; +} diff --git a/node_modules/fb-watchman/package.json b/node_modules/fb-watchman/package.json new file mode 100755 index 0000000..23188e6 --- /dev/null +++ b/node_modules/fb-watchman/package.json @@ -0,0 +1,35 @@ +{ + "name": "fb-watchman", + "version": "2.0.2", + "description": "Bindings for the Watchman file watching service", + "main": "index.js", + "repository": { + "type": "git", + "url": "git@github.com:facebook/watchman.git" + }, + "keywords": [ + "facebook", + "watchman", + "file", + "watch", + "watcher", + "watching", + "fs.watch", + "fswatcher", + "fs", + "glob", + "utility" + ], + "author": "Wez Furlong (http://wezfurlong.org)", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/facebook/watchman/issues" + }, + "homepage": "https://facebook.github.io/watchman/", + "files": [ + "index.js" + ], + "dependencies": { + "bser": "2.1.1" + } +} diff --git a/node_modules/fill-range/LICENSE b/node_modules/fill-range/LICENSE new file mode 100755 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/fill-range/LICENSE @@ -0,0 +1,21 @@ +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/node_modules/fill-range/README.md b/node_modules/fill-range/README.md new file mode 100755 index 0000000..8d756fe --- /dev/null +++ b/node_modules/fill-range/README.md @@ -0,0 +1,237 @@ +# 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/node_modules/fill-range/index.js b/node_modules/fill-range/index.js new file mode 100755 index 0000000..97ce35a --- /dev/null +++ b/node_modules/fill-range/index.js @@ -0,0 +1,249 @@ +/*! + * 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/node_modules/fill-range/package.json b/node_modules/fill-range/package.json new file mode 100755 index 0000000..07d3076 --- /dev/null +++ b/node_modules/fill-range/package.json @@ -0,0 +1,69 @@ +{ + "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/node_modules/finalhandler/HISTORY.md b/node_modules/finalhandler/HISTORY.md old mode 100644 new mode 100755 diff --git a/node_modules/finalhandler/LICENSE b/node_modules/finalhandler/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/finalhandler/README.md b/node_modules/finalhandler/README.md old mode 100644 new mode 100755 diff --git a/node_modules/finalhandler/SECURITY.md b/node_modules/finalhandler/SECURITY.md old mode 100644 new mode 100755 diff --git a/node_modules/finalhandler/index.js b/node_modules/finalhandler/index.js old mode 100644 new mode 100755 diff --git a/node_modules/finalhandler/package.json b/node_modules/finalhandler/package.json old mode 100644 new mode 100755 diff --git a/node_modules/find-up/index.d.ts b/node_modules/find-up/index.d.ts new file mode 100755 index 0000000..41e3192 --- /dev/null +++ b/node_modules/find-up/index.d.ts @@ -0,0 +1,137 @@ +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: { + /** + 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 | 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; + + sync: { + /** + 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 | 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; + + /** + 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; + } + + /** + 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; +}; + +export = findUp; diff --git a/node_modules/find-up/index.js b/node_modules/find-up/index.js new file mode 100755 index 0000000..ce564e5 --- /dev/null +++ b/node_modules/find-up/index.js @@ -0,0 +1,89 @@ +'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/node_modules/find-up/license b/node_modules/find-up/license new file mode 100755 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/find-up/license @@ -0,0 +1,9 @@ +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/node_modules/find-up/package.json b/node_modules/find-up/package.json new file mode 100755 index 0000000..cd50281 --- /dev/null +++ b/node_modules/find-up/package.json @@ -0,0 +1,53 @@ +{ + "name": "find-up", + "version": "4.1.0", + "description": "Find a file or directory by walking up parent directories", + "license": "MIT", + "repository": "sindresorhus/find-up", + "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": [ + "find", + "up", + "find-up", + "findup", + "look-up", + "look", + "file", + "search", + "match", + "package", + "resolve", + "parent", + "parents", + "folder", + "directory", + "walk", + "walking", + "path" + ], + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "devDependencies": { + "ava": "^2.1.0", + "is-path-inside": "^2.1.0", + "tempy": "^0.3.0", + "tsd": "^0.7.3", + "xo": "^0.24.0" + } +} diff --git a/node_modules/find-up/readme.md b/node_modules/find-up/readme.md new file mode 100755 index 0000000..d6a21e5 --- /dev/null +++ b/node_modules/find-up/readme.md @@ -0,0 +1,156 @@ +# find-up [![Build Status](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/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/node_modules/form-data/License b/node_modules/form-data/License old mode 100644 new mode 100755 diff --git a/node_modules/form-data/README.md.bak b/node_modules/form-data/README.md.bak old mode 100644 new mode 100755 diff --git a/node_modules/form-data/Readme.md b/node_modules/form-data/Readme.md old mode 100644 new mode 100755 diff --git a/node_modules/form-data/index.d.ts b/node_modules/form-data/index.d.ts old mode 100644 new mode 100755 diff --git a/node_modules/form-data/lib/browser.js b/node_modules/form-data/lib/browser.js old mode 100644 new mode 100755 diff --git a/node_modules/form-data/lib/form_data.js b/node_modules/form-data/lib/form_data.js old mode 100644 new mode 100755 diff --git a/node_modules/form-data/lib/populate.js b/node_modules/form-data/lib/populate.js old mode 100644 new mode 100755 diff --git a/node_modules/form-data/package.json b/node_modules/form-data/package.json old mode 100644 new mode 100755 diff --git a/node_modules/forwarded/HISTORY.md b/node_modules/forwarded/HISTORY.md old mode 100644 new mode 100755 diff --git a/node_modules/forwarded/LICENSE b/node_modules/forwarded/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/forwarded/README.md b/node_modules/forwarded/README.md old mode 100644 new mode 100755 diff --git a/node_modules/forwarded/index.js b/node_modules/forwarded/index.js old mode 100644 new mode 100755 diff --git a/node_modules/forwarded/package.json b/node_modules/forwarded/package.json old mode 100644 new mode 100755 diff --git a/node_modules/fresh/HISTORY.md b/node_modules/fresh/HISTORY.md old mode 100644 new mode 100755 diff --git a/node_modules/fresh/LICENSE b/node_modules/fresh/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/fresh/README.md b/node_modules/fresh/README.md old mode 100644 new mode 100755 diff --git a/node_modules/fresh/index.js b/node_modules/fresh/index.js old mode 100644 new mode 100755 diff --git a/node_modules/fresh/package.json b/node_modules/fresh/package.json old mode 100644 new mode 100755 diff --git a/node_modules/fs.realpath/LICENSE b/node_modules/fs.realpath/LICENSE new file mode 100755 index 0000000..5bd884c --- /dev/null +++ b/node_modules/fs.realpath/LICENSE @@ -0,0 +1,43 @@ +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/node_modules/fs.realpath/README.md b/node_modules/fs.realpath/README.md new file mode 100755 index 0000000..a42ceac --- /dev/null +++ b/node_modules/fs.realpath/README.md @@ -0,0 +1,33 @@ +# 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/node_modules/fs.realpath/index.js b/node_modules/fs.realpath/index.js new file mode 100755 index 0000000..b09c7c7 --- /dev/null +++ b/node_modules/fs.realpath/index.js @@ -0,0 +1,66 @@ +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/node_modules/fs.realpath/old.js b/node_modules/fs.realpath/old.js new file mode 100755 index 0000000..b40305e --- /dev/null +++ b/node_modules/fs.realpath/old.js @@ -0,0 +1,303 @@ +// 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/node_modules/fs.realpath/package.json b/node_modules/fs.realpath/package.json new file mode 100755 index 0000000..3edc57d --- /dev/null +++ b/node_modules/fs.realpath/package.json @@ -0,0 +1,26 @@ +{ + "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/node_modules/function-bind/.editorconfig b/node_modules/function-bind/.editorconfig old mode 100644 new mode 100755 diff --git a/node_modules/function-bind/.eslintrc b/node_modules/function-bind/.eslintrc old mode 100644 new mode 100755 diff --git a/node_modules/function-bind/.jscs.json b/node_modules/function-bind/.jscs.json old mode 100644 new mode 100755 diff --git a/node_modules/function-bind/.npmignore b/node_modules/function-bind/.npmignore old mode 100644 new mode 100755 diff --git a/node_modules/function-bind/.travis.yml b/node_modules/function-bind/.travis.yml old mode 100644 new mode 100755 diff --git a/node_modules/function-bind/LICENSE b/node_modules/function-bind/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/function-bind/README.md b/node_modules/function-bind/README.md old mode 100644 new mode 100755 diff --git a/node_modules/function-bind/implementation.js b/node_modules/function-bind/implementation.js old mode 100644 new mode 100755 diff --git a/node_modules/function-bind/index.js b/node_modules/function-bind/index.js old mode 100644 new mode 100755 diff --git a/node_modules/function-bind/package.json b/node_modules/function-bind/package.json old mode 100644 new mode 100755 diff --git a/node_modules/function-bind/test/.eslintrc b/node_modules/function-bind/test/.eslintrc old mode 100644 new mode 100755 diff --git a/node_modules/function-bind/test/index.js b/node_modules/function-bind/test/index.js old mode 100644 new mode 100755 diff --git a/node_modules/gensync/LICENSE b/node_modules/gensync/LICENSE new file mode 100755 index 0000000..af7f781 --- /dev/null +++ b/node_modules/gensync/LICENSE @@ -0,0 +1,7 @@ +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/node_modules/gensync/README.md b/node_modules/gensync/README.md new file mode 100755 index 0000000..f68ce1a --- /dev/null +++ b/node_modules/gensync/README.md @@ -0,0 +1,196 @@ +# 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/node_modules/gensync/index.js b/node_modules/gensync/index.js new file mode 100755 index 0000000..ee0ea61 --- /dev/null +++ b/node_modules/gensync/index.js @@ -0,0 +1,373 @@ +"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/node_modules/gensync/index.js.flow b/node_modules/gensync/index.js.flow new file mode 100755 index 0000000..fa22e0b --- /dev/null +++ b/node_modules/gensync/index.js.flow @@ -0,0 +1,32 @@ +// @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/node_modules/gensync/package.json b/node_modules/gensync/package.json new file mode 100755 index 0000000..07f8757 --- /dev/null +++ b/node_modules/gensync/package.json @@ -0,0 +1,37 @@ +{ + "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/node_modules/gensync/test/.babelrc b/node_modules/gensync/test/.babelrc new file mode 100755 index 0000000..cc7f4e9 --- /dev/null +++ b/node_modules/gensync/test/.babelrc @@ -0,0 +1,5 @@ +{ + presets: [ + ["env", { targets: { node: "current" }}], + ], +} diff --git a/node_modules/gensync/test/index.test.js b/node_modules/gensync/test/index.test.js new file mode 100755 index 0000000..ca1a269 --- /dev/null +++ b/node_modules/gensync/test/index.test.js @@ -0,0 +1,489 @@ +"use strict"; + +const promisify = require("util.promisify"); +const gensync = require("../"); + +const TEST_ERROR = new Error("TEST_ERROR"); + +const DID_ERROR = new Error("DID_ERROR"); + +const doSuccess = gensync({ + sync: () => 42, + async: () => Promise.resolve(42), +}); + +const doError = gensync({ + sync: () => { + throw DID_ERROR; + }, + async: () => Promise.reject(DID_ERROR), +}); + +function throwTestError() { + throw TEST_ERROR; +} + +async function expectResult( + fn, + arg, + { error, value, expectSync = false, syncErrback = expectSync } +) { + if (!expectSync) { + expect(() => fn.sync(arg)).toThrow(TEST_ERROR); + } else if (error) { + expect(() => fn.sync(arg)).toThrow(error); + } else { + expect(fn.sync(arg)).toBe(value); + } + + if (error) { + await expect(fn.async(arg)).rejects.toBe(error); + } else { + await expect(fn.async(arg)).resolves.toBe(value); + } + + await new Promise((resolve, reject) => { + let sync = true; + fn.errback(arg, (err, val) => { + try { + expect(err).toBe(error); + expect(val).toBe(value); + expect(sync).toBe(syncErrback); + + resolve(); + } catch (e) { + reject(e); + } + }); + sync = false; + }); +} + +describe("gensync({})", () => { + describe("option validation", () => { + test("disallow async and errback handler together", () => { + try { + gensync({ + sync: throwTestError, + async: throwTestError, + errback: throwTestError, + }); + + throwTestError(); + } catch (err) { + expect(err.message).toMatch( + /Expected one of either opts.async or opts.errback, but got _both_\./ + ); + expect(err.code).toBe("GENSYNC_OPTIONS_ERROR"); + } + }); + + test("disallow missing sync handler", () => { + try { + gensync({ + async: throwTestError, + }); + + throwTestError(); + } catch (err) { + expect(err.message).toMatch(/Expected opts.sync to be a function./); + expect(err.code).toBe("GENSYNC_OPTIONS_ERROR"); + } + }); + + test("errback callback required", () => { + const fn = gensync({ + sync: throwTestError, + async: throwTestError, + }); + + try { + fn.errback(); + + throwTestError(); + } catch (err) { + expect(err.message).toMatch(/function called without callback/); + expect(err.code).toBe("GENSYNC_ERRBACK_NO_CALLBACK"); + } + }); + }); + + describe("generator function metadata", () => { + test("automatic naming", () => { + expect( + gensync({ + sync: function readFileSync() {}, + async: () => {}, + }).name + ).toBe("readFile"); + expect( + gensync({ + sync: function readFile() {}, + async: () => {}, + }).name + ).toBe("readFile"); + expect( + gensync({ + sync: function readFileAsync() {}, + async: () => {}, + }).name + ).toBe("readFileAsync"); + + expect( + gensync({ + sync: () => {}, + async: function readFileSync() {}, + }).name + ).toBe("readFileSync"); + expect( + gensync({ + sync: () => {}, + async: function readFile() {}, + }).name + ).toBe("readFile"); + expect( + gensync({ + sync: () => {}, + async: function readFileAsync() {}, + }).name + ).toBe("readFile"); + + expect( + gensync({ + sync: () => {}, + errback: function readFileSync() {}, + }).name + ).toBe("readFileSync"); + expect( + gensync({ + sync: () => {}, + errback: function readFile() {}, + }).name + ).toBe("readFile"); + expect( + gensync({ + sync: () => {}, + errback: function readFileAsync() {}, + }).name + ).toBe("readFileAsync"); + }); + + test("explicit naming", () => { + expect( + gensync({ + name: "readFile", + sync: () => {}, + async: () => {}, + }).name + ).toBe("readFile"); + }); + + test("default arity", () => { + expect( + gensync({ + sync: function(a, b, c, d, e, f, g) { + throwTestError(); + }, + async: throwTestError, + }).length + ).toBe(7); + }); + + test("explicit arity", () => { + expect( + gensync({ + arity: 3, + sync: throwTestError, + async: throwTestError, + }).length + ).toBe(3); + }); + }); + + describe("'sync' handler", async () => { + test("success", async () => { + const fn = gensync({ + sync: (...args) => JSON.stringify(args), + }); + + await expectResult(fn, 42, { value: "[42]", expectSync: true }); + }); + + test("failure", async () => { + const fn = gensync({ + sync: (...args) => { + throw JSON.stringify(args); + }, + }); + + await expectResult(fn, 42, { error: "[42]", expectSync: true }); + }); + }); + + describe("'async' handler", async () => { + test("success", async () => { + const fn = gensync({ + sync: throwTestError, + async: (...args) => Promise.resolve(JSON.stringify(args)), + }); + + await expectResult(fn, 42, { value: "[42]" }); + }); + + test("failure", async () => { + const fn = gensync({ + sync: throwTestError, + async: (...args) => Promise.reject(JSON.stringify(args)), + }); + + await expectResult(fn, 42, { error: "[42]" }); + }); + }); + + describe("'errback' sync handler", async () => { + test("success", async () => { + const fn = gensync({ + sync: throwTestError, + errback: (...args) => args.pop()(null, JSON.stringify(args)), + }); + + await expectResult(fn, 42, { value: "[42]", syncErrback: true }); + }); + + test("failure", async () => { + const fn = gensync({ + sync: throwTestError, + errback: (...args) => args.pop()(JSON.stringify(args)), + }); + + await expectResult(fn, 42, { error: "[42]", syncErrback: true }); + }); + }); + + describe("'errback' async handler", async () => { + test("success", async () => { + const fn = gensync({ + sync: throwTestError, + errback: (...args) => + process.nextTick(() => args.pop()(null, JSON.stringify(args))), + }); + + await expectResult(fn, 42, { value: "[42]" }); + }); + + test("failure", async () => { + const fn = gensync({ + sync: throwTestError, + errback: (...args) => + process.nextTick(() => args.pop()(JSON.stringify(args))), + }); + + await expectResult(fn, 42, { error: "[42]" }); + }); + }); +}); + +describe("gensync(function* () {})", () => { + test("sync throw before body", async () => { + const fn = gensync(function*(arg = throwTestError()) {}); + + await expectResult(fn, undefined, { + error: TEST_ERROR, + syncErrback: true, + }); + }); + + test("sync throw inside body", async () => { + const fn = gensync(function*() { + throwTestError(); + }); + + await expectResult(fn, undefined, { + error: TEST_ERROR, + syncErrback: true, + }); + }); + + test("async throw inside body", async () => { + const fn = gensync(function*() { + const val = yield* doSuccess(); + throwTestError(); + }); + + await expectResult(fn, undefined, { + error: TEST_ERROR, + }); + }); + + test("error inside body", async () => { + const fn = gensync(function*() { + yield* doError(); + }); + + await expectResult(fn, undefined, { + error: DID_ERROR, + expectSync: true, + syncErrback: false, + }); + }); + + test("successful return value", async () => { + const fn = gensync(function*() { + const value = yield* doSuccess(); + + expect(value).toBe(42); + + return 84; + }); + + await expectResult(fn, undefined, { + value: 84, + expectSync: true, + syncErrback: false, + }); + }); + + test("successful final value", async () => { + const fn = gensync(function*() { + return 42; + }); + + await expectResult(fn, undefined, { + value: 42, + expectSync: true, + }); + }); + + test("yield unexpected object", async () => { + const fn = gensync(function*() { + yield {}; + }); + + try { + await fn.async(); + + throwTestError(); + } catch (err) { + expect(err.message).toMatch( + /Got unexpected yielded value in gensync generator/ + ); + expect(err.code).toBe("GENSYNC_EXPECTED_START"); + } + }); + + test("yield suspend yield", async () => { + const fn = gensync(function*() { + yield Symbol.for("gensync:v1:start"); + + // Should be "yield*" for no error. + yield {}; + }); + + try { + await fn.async(); + + throwTestError(); + } catch (err) { + expect(err.message).toMatch(/Expected GENSYNC_SUSPEND, got {}/); + expect(err.code).toBe("GENSYNC_EXPECTED_SUSPEND"); + } + }); + + test("yield suspend return", async () => { + const fn = gensync(function*() { + yield Symbol.for("gensync:v1:start"); + + // Should be "yield*" for no error. + return {}; + }); + + try { + await fn.async(); + + throwTestError(); + } catch (err) { + expect(err.message).toMatch(/Unexpected generator completion/); + expect(err.code).toBe("GENSYNC_EXPECTED_SUSPEND"); + } + }); +}); + +describe("gensync.all()", () => { + test("success", async () => { + const fn = gensync(function*() { + const result = yield* gensync.all([doSuccess(), doSuccess()]); + + expect(result).toEqual([42, 42]); + }); + + await expectResult(fn, undefined, { + value: undefined, + expectSync: true, + syncErrback: false, + }); + }); + + test("error first", async () => { + const fn = gensync(function*() { + yield* gensync.all([doError(), doSuccess()]); + }); + + await expectResult(fn, undefined, { + error: DID_ERROR, + expectSync: true, + syncErrback: false, + }); + }); + + test("error last", async () => { + const fn = gensync(function*() { + yield* gensync.all([doSuccess(), doError()]); + }); + + await expectResult(fn, undefined, { + error: DID_ERROR, + expectSync: true, + syncErrback: false, + }); + }); + + test("empty list", async () => { + const fn = gensync(function*() { + yield* gensync.all([]); + }); + + await expectResult(fn, undefined, { + value: undefined, + expectSync: true, + syncErrback: false, + }); + }); +}); + +describe("gensync.race()", () => { + test("success", async () => { + const fn = gensync(function*() { + const result = yield* gensync.race([doSuccess(), doError()]); + + expect(result).toEqual(42); + }); + + await expectResult(fn, undefined, { + value: undefined, + expectSync: true, + syncErrback: false, + }); + }); + + test("error", async () => { + const fn = gensync(function*() { + yield* gensync.race([doError(), doSuccess()]); + }); + + await expectResult(fn, undefined, { + error: DID_ERROR, + expectSync: true, + syncErrback: false, + }); + }); +}); diff --git a/node_modules/get-caller-file/LICENSE.md b/node_modules/get-caller-file/LICENSE.md new file mode 100755 index 0000000..bf3e1c0 --- /dev/null +++ b/node_modules/get-caller-file/LICENSE.md @@ -0,0 +1,6 @@ +ISC License (ISC) +Copyright 2018 Stefan Penner + +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/node_modules/get-caller-file/README.md b/node_modules/get-caller-file/README.md new file mode 100755 index 0000000..a7d8c07 --- /dev/null +++ b/node_modules/get-caller-file/README.md @@ -0,0 +1,41 @@ +# get-caller-file + +[![Build Status](https://travis-ci.org/stefanpenner/get-caller-file.svg?branch=master)](https://travis-ci.org/stefanpenner/get-caller-file) +[![Build status](https://ci.appveyor.com/api/projects/status/ol2q94g1932cy14a/branch/master?svg=true)](https://ci.appveyor.com/project/embercli/get-caller-file/branch/master) + +This is a utility, which allows a function to figure out from which file it was invoked. It does so by inspecting v8's stack trace at the time it is invoked. + +Inspired by http://stackoverflow.com/questions/13227489 + +*note: this relies on Node/V8 specific APIs, as such other runtimes may not work* + +## Installation + +```bash +yarn add get-caller-file +``` + +## Usage + +Given: + +```js +// ./foo.js +const getCallerFile = require('get-caller-file'); + +module.exports = function() { + return getCallerFile(); // figures out who called it +}; +``` + +```js +// index.js +const foo = require('./foo'); + +foo() // => /full/path/to/this/file/index.js +``` + + +## Options: + +* `getCallerFile(position = 2)`: where position is stack frame whos fileName we want. diff --git a/node_modules/get-caller-file/index.d.ts b/node_modules/get-caller-file/index.d.ts new file mode 100755 index 0000000..babed69 --- /dev/null +++ b/node_modules/get-caller-file/index.d.ts @@ -0,0 +1,2 @@ +declare const _default: (position?: number) => any; +export = _default; diff --git a/node_modules/get-caller-file/index.js b/node_modules/get-caller-file/index.js new file mode 100755 index 0000000..57304f8 --- /dev/null +++ b/node_modules/get-caller-file/index.js @@ -0,0 +1,22 @@ +"use strict"; +// Call this function in a another function to find out the file from +// which that function was called from. (Inspects the v8 stack trace) +// +// Inspired by http://stackoverflow.com/questions/13227489 +module.exports = function getCallerFile(position) { + if (position === void 0) { position = 2; } + if (position >= Error.stackTraceLimit) { + throw new TypeError('getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `' + position + '` and Error.stackTraceLimit was: `' + Error.stackTraceLimit + '`'); + } + var oldPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = function (_, stack) { return stack; }; + var stack = new Error().stack; + Error.prepareStackTrace = oldPrepareStackTrace; + if (stack !== null && typeof stack === 'object') { + // stack[0] holds this file + // stack[1] holds where this function was called + // stack[2] holds the file we're interested in + return stack[position] ? stack[position].getFileName() : undefined; + } +}; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/get-caller-file/index.js.map b/node_modules/get-caller-file/index.js.map new file mode 100755 index 0000000..89c655c --- /dev/null +++ b/node_modules/get-caller-file/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,qEAAqE;AACrE,EAAE;AACF,0DAA0D;AAE1D,iBAAS,SAAS,aAAa,CAAC,QAAY;IAAZ,yBAAA,EAAA,YAAY;IAC1C,IAAI,QAAQ,IAAI,KAAK,CAAC,eAAe,EAAE;QACrC,MAAM,IAAI,SAAS,CAAC,kGAAkG,GAAG,QAAQ,GAAG,oCAAoC,GAAG,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;KACzM;IAED,IAAM,oBAAoB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrD,KAAK,CAAC,iBAAiB,GAAG,UAAC,CAAC,EAAE,KAAK,IAAM,OAAA,KAAK,EAAL,CAAK,CAAC;IAC/C,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;IAChC,KAAK,CAAC,iBAAiB,GAAG,oBAAoB,CAAC;IAG/C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC/C,2BAA2B;QAC3B,gDAAgD;QAChD,8CAA8C;QAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,QAAQ,CAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;KAC7E;AACH,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/get-caller-file/package.json b/node_modules/get-caller-file/package.json new file mode 100755 index 0000000..b0dd571 --- /dev/null +++ b/node_modules/get-caller-file/package.json @@ -0,0 +1,42 @@ +{ + "name": "get-caller-file", + "version": "2.0.5", + "description": "", + "main": "index.js", + "directories": { + "test": "tests" + }, + "files": [ + "index.js", + "index.js.map", + "index.d.ts" + ], + "scripts": { + "prepare": "tsc", + "test": "mocha test", + "test:debug": "mocha test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/stefanpenner/get-caller-file.git" + }, + "author": "Stefan Penner", + "license": "ISC", + "bugs": { + "url": "https://github.com/stefanpenner/get-caller-file/issues" + }, + "homepage": "https://github.com/stefanpenner/get-caller-file#readme", + "devDependencies": { + "@types/chai": "^4.1.7", + "@types/ensure-posix-path": "^1.0.0", + "@types/mocha": "^5.2.6", + "@types/node": "^11.10.5", + "chai": "^4.1.2", + "ensure-posix-path": "^1.0.1", + "mocha": "^5.2.0", + "typescript": "^3.3.3333" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } +} diff --git a/node_modules/get-intrinsic/.eslintrc b/node_modules/get-intrinsic/.eslintrc old mode 100644 new mode 100755 diff --git a/node_modules/get-intrinsic/.github/FUNDING.yml b/node_modules/get-intrinsic/.github/FUNDING.yml old mode 100644 new mode 100755 diff --git a/node_modules/get-intrinsic/.nycrc b/node_modules/get-intrinsic/.nycrc old mode 100644 new mode 100755 diff --git a/node_modules/get-intrinsic/CHANGELOG.md b/node_modules/get-intrinsic/CHANGELOG.md old mode 100644 new mode 100755 diff --git a/node_modules/get-intrinsic/LICENSE b/node_modules/get-intrinsic/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/get-intrinsic/README.md b/node_modules/get-intrinsic/README.md old mode 100644 new mode 100755 diff --git a/node_modules/get-intrinsic/index.js b/node_modules/get-intrinsic/index.js old mode 100644 new mode 100755 diff --git a/node_modules/get-intrinsic/package.json b/node_modules/get-intrinsic/package.json old mode 100644 new mode 100755 diff --git a/node_modules/get-intrinsic/test/GetIntrinsic.js b/node_modules/get-intrinsic/test/GetIntrinsic.js old mode 100644 new mode 100755 diff --git a/node_modules/get-package-type/CHANGELOG.md b/node_modules/get-package-type/CHANGELOG.md new file mode 100755 index 0000000..5f2c4cc --- /dev/null +++ b/node_modules/get-package-type/CHANGELOG.md @@ -0,0 +1,10 @@ +# 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/node_modules/get-package-type/LICENSE b/node_modules/get-package-type/LICENSE new file mode 100755 index 0000000..971e3b7 --- /dev/null +++ b/node_modules/get-package-type/LICENSE @@ -0,0 +1,21 @@ +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/node_modules/get-package-type/README.md b/node_modules/get-package-type/README.md new file mode 100755 index 0000000..8e1ebf2 --- /dev/null +++ b/node_modules/get-package-type/README.md @@ -0,0 +1,32 @@ +# 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/node_modules/get-package-type/async.cjs b/node_modules/get-package-type/async.cjs new file mode 100755 index 0000000..fa7fd5c --- /dev/null +++ b/node_modules/get-package-type/async.cjs @@ -0,0 +1,52 @@ +'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/node_modules/get-package-type/cache.cjs b/node_modules/get-package-type/cache.cjs new file mode 100755 index 0000000..4fd928a --- /dev/null +++ b/node_modules/get-package-type/cache.cjs @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = new Map(); diff --git a/node_modules/get-package-type/index.cjs b/node_modules/get-package-type/index.cjs new file mode 100755 index 0000000..b5b0734 --- /dev/null +++ b/node_modules/get-package-type/index.cjs @@ -0,0 +1,7 @@ +'use strict'; + +const getPackageType = require('./async.cjs'); +const getPackageTypeSync = require('./sync.cjs'); + +module.exports = filename => getPackageType(filename); +module.exports.sync = getPackageTypeSync; diff --git a/node_modules/get-package-type/is-node-modules.cjs b/node_modules/get-package-type/is-node-modules.cjs new file mode 100755 index 0000000..5a37a77 --- /dev/null +++ b/node_modules/get-package-type/is-node-modules.cjs @@ -0,0 +1,15 @@ +'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/node_modules/get-package-type/package.json b/node_modules/get-package-type/package.json new file mode 100755 index 0000000..dcb0ea8 --- /dev/null +++ b/node_modules/get-package-type/package.json @@ -0,0 +1,35 @@ +{ + "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/node_modules/get-package-type/sync.cjs b/node_modules/get-package-type/sync.cjs new file mode 100755 index 0000000..85090a6 --- /dev/null +++ b/node_modules/get-package-type/sync.cjs @@ -0,0 +1,42 @@ +'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/node_modules/get-stream/buffer-stream.js b/node_modules/get-stream/buffer-stream.js new file mode 100755 index 0000000..2dd7574 --- /dev/null +++ b/node_modules/get-stream/buffer-stream.js @@ -0,0 +1,52 @@ +'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/node_modules/get-stream/index.d.ts b/node_modules/get-stream/index.d.ts new file mode 100755 index 0000000..9485b2b --- /dev/null +++ b/node_modules/get-stream/index.d.ts @@ -0,0 +1,105 @@ +/// +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/node_modules/get-stream/index.js b/node_modules/get-stream/index.js new file mode 100755 index 0000000..1c5d028 --- /dev/null +++ b/node_modules/get-stream/index.js @@ -0,0 +1,61 @@ +'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/node_modules/get-stream/license b/node_modules/get-stream/license new file mode 100755 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/get-stream/license @@ -0,0 +1,9 @@ +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/node_modules/get-stream/package.json b/node_modules/get-stream/package.json new file mode 100755 index 0000000..bd47a75 --- /dev/null +++ b/node_modules/get-stream/package.json @@ -0,0 +1,47 @@ +{ + "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/node_modules/get-stream/readme.md b/node_modules/get-stream/readme.md new file mode 100755 index 0000000..70b01fd --- /dev/null +++ b/node_modules/get-stream/readme.md @@ -0,0 +1,124 @@ +# 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/node_modules/glob/LICENSE b/node_modules/glob/LICENSE new file mode 100755 index 0000000..42ca266 --- /dev/null +++ b/node_modules/glob/LICENSE @@ -0,0 +1,21 @@ +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/node_modules/glob/README.md b/node_modules/glob/README.md new file mode 100755 index 0000000..83f0c83 --- /dev/null +++ b/node_modules/glob/README.md @@ -0,0 +1,378 @@ +# 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/node_modules/glob/common.js b/node_modules/glob/common.js new file mode 100755 index 0000000..424c46e --- /dev/null +++ b/node_modules/glob/common.js @@ -0,0 +1,238 @@ +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/node_modules/glob/glob.js b/node_modules/glob/glob.js new file mode 100755 index 0000000..37a4d7e --- /dev/null +++ b/node_modules/glob/glob.js @@ -0,0 +1,790 @@ +// 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/node_modules/glob/package.json b/node_modules/glob/package.json new file mode 100755 index 0000000..5940b64 --- /dev/null +++ b/node_modules/glob/package.json @@ -0,0 +1,55 @@ +{ + "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/node_modules/glob/sync.js b/node_modules/glob/sync.js new file mode 100755 index 0000000..2c4f480 --- /dev/null +++ b/node_modules/glob/sync.js @@ -0,0 +1,486 @@ +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/node_modules/globals/globals.json b/node_modules/globals/globals.json new file mode 100755 index 0000000..6f5ac02 --- /dev/null +++ b/node_modules/globals/globals.json @@ -0,0 +1,1563 @@ +{ + "builtin": { + "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 + }, + "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 + }, + "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, + "close": false, + "closed": false, + "CloseEvent": false, + "Comment": false, + "CompositionEvent": 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, + "CSSMediaRule": false, + "CSSNamespaceRule": false, + "CSSPageRule": false, + "CSSRule": false, + "CSSRuleList": false, + "CSSStyleDeclaration": false, + "CSSStyleRule": false, + "CSSStyleSheet": false, + "CSSSupportsRule": false, + "CustomElementRegistry": false, + "customElements": false, + "CustomEvent": false, + "DataTransfer": false, + "DataTransferItem": false, + "DataTransferItemList": 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, + "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, + "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, + "MediaQueryList": false, + "MediaQueryListEvent": false, + "MediaRecorder": false, + "MediaSettingsRange": false, + "MediaSource": false, + "MediaStream": false, + "MediaStreamAudioDestinationNode": false, + "MediaStreamAudioSourceNode": 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, + "NetworkInformation": false, + "Node": false, + "NodeFilter": false, + "NodeIterator": false, + "NodeList": false, + "Notification": false, + "OfflineAudioCompletionEvent": false, + "OfflineAudioContext": false, + "offscreenBuffering": false, + "OffscreenCanvas": true, + "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, + "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, + "ReadableStream": false, + "registerProcessor": false, + "RemotePlayback": false, + "removeEventListener": 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, + "styleMedia": false, + "StyleSheet": false, + "StyleSheetList": 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, + "TextEncoder": false, + "TextEvent": false, + "TextMetrics": false, + "TextTrack": false, + "TextTrackCue": false, + "TextTrackCueList": false, + "TextTrackList": false, + "TimeRanges": false, + "toolbar": false, + "top": false, + "Touch": false, + "TouchEvent": false, + "TouchList": false, + "TrackEvent": 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, + "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, + "Cache": false, + "caches": false, + "clearInterval": false, + "clearTimeout": false, + "close": true, + "console": false, + "fetch": 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, + "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, + "PerformanceResourceTiming": false, + "PerformanceTiming": false, + "postMessage": true, + "Promise": false, + "queueMicrotask": false, + "removeEventListener": false, + "Request": false, + "Response": false, + "self": true, + "ServiceWorkerRegistration": false, + "setInterval": false, + "setTimeout": false, + "TextDecoder": false, + "TextEncoder": false, + "URL": false, + "URLSearchParams": false, + "WebSocket": false, + "Worker": false, + "WorkerGlobalScope": false, + "XMLHttpRequest": false + }, + "node": { + "__dirname": false, + "__filename": false, + "Buffer": false, + "clearImmediate": false, + "clearInterval": false, + "clearTimeout": false, + "console": false, + "exports": true, + "global": false, + "Intl": false, + "module": false, + "process": false, + "queueMicrotask": false, + "require": false, + "setImmediate": false, + "setInterval": false, + "setTimeout": false, + "TextDecoder": false, + "TextEncoder": false, + "URL": false, + "URLSearchParams": 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, + "fail": false, + "fdescribe": false, + "fit": false, + "it": false, + "jasmine": false, + "pending": false, + "runs": false, + "spyOn": 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": true, + "Enumerator": true, + "GetObject": true, + "ScriptEngine": true, + "ScriptEngineBuildVersion": true, + "ScriptEngineMajorVersion": true, + "ScriptEngineMinorVersion": true, + "VBArray": true, + "WScript": true, + "WSH": true, + "XDomainRequest": true + }, + "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, + "$": 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, + "Cache": false, + "caches": false, + "CacheStorage": false, + "clearInterval": false, + "clearTimeout": false, + "Client": false, + "clients": false, + "Clients": false, + "close": true, + "console": false, + "ExtendableEvent": false, + "ExtendableMessageEvent": false, + "fetch": false, + "FetchEvent": 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, + "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, + "PerformanceResourceTiming": false, + "PerformanceTiming": false, + "postMessage": true, + "Promise": false, + "queueMicrotask": 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, + "TextDecoder": false, + "TextEncoder": false, + "URL": false, + "URLSearchParams": false, + "WebSocket": false, + "WindowClient": false, + "Worker": false, + "WorkerGlobalScope": false, + "XMLHttpRequest": false + }, + "atomtest": { + "advanceClock": 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": { + "clearInterval": false, + "clearTimeout": false, + "console": false, + "setInterval": false, + "setTimeout": false, + "URL": false, + "URLSearchParams": false + }, + "webextensions": { + "browser": false, + "chrome": false, + "opr": false + }, + "greasemonkey": { + "cloneInto": false, + "createObjectIn": false, + "exportFunction": false, + "GM": false, + "GM_addStyle": false, + "GM_deleteValue": false, + "GM_getResourceText": false, + "GM_getResourceURL": false, + "GM_getValue": false, + "GM_info": false, + "GM_listValues": false, + "GM_log": false, + "GM_openInTab": false, + "GM_registerMenuCommand": false, + "GM_setClipboard": false, + "GM_setValue": 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/node_modules/globals/index.js b/node_modules/globals/index.js new file mode 100755 index 0000000..a951582 --- /dev/null +++ b/node_modules/globals/index.js @@ -0,0 +1,2 @@ +'use strict'; +module.exports = require('./globals.json'); diff --git a/node_modules/globals/license b/node_modules/globals/license new file mode 100755 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/globals/license @@ -0,0 +1,9 @@ +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/node_modules/globals/package.json b/node_modules/globals/package.json new file mode 100755 index 0000000..dfe459b --- /dev/null +++ b/node_modules/globals/package.json @@ -0,0 +1,41 @@ +{ + "name": "globals", + "version": "11.12.0", + "description": "Global identifiers from different JavaScript environments", + "license": "MIT", + "repository": "sindresorhus/globals", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js", + "globals.json" + ], + "keywords": [ + "globals", + "global", + "identifiers", + "variables", + "vars", + "jshint", + "eslint", + "environments" + ], + "devDependencies": { + "ava": "0.21.0", + "xo": "0.18.0" + }, + "xo": { + "ignores": [ + "get-browser-globals.js" + ] + } +} diff --git a/node_modules/globals/readme.md b/node_modules/globals/readme.md new file mode 100755 index 0000000..8c47855 --- /dev/null +++ b/node_modules/globals/readme.md @@ -0,0 +1,41 @@ +# globals [![Build Status](https://travis-ci.org/sindresorhus/globals.svg?branch=master)](https://travis-ci.org/sindresorhus/globals) + +> Global identifiers from different JavaScript environments + +Extracted from [JSHint](https://github.com/jshint/jshint/blob/3a8efa979dbb157bfb5c10b5826603a55a33b9ad/src/vars.js) and [ESLint](https://github.com/eslint/eslint/blob/b648406218f8a2d7302b98f5565e23199f44eb31/conf/environments.json) and merged. + +It's just a [JSON file](globals.json), so use it in whatever environment you like. + +**This module [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. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/graceful-fs/LICENSE b/node_modules/graceful-fs/LICENSE new file mode 100755 index 0000000..e906a25 --- /dev/null +++ b/node_modules/graceful-fs/LICENSE @@ -0,0 +1,15 @@ +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/node_modules/graceful-fs/README.md b/node_modules/graceful-fs/README.md new file mode 100755 index 0000000..82d6e4d --- /dev/null +++ b/node_modules/graceful-fs/README.md @@ -0,0 +1,143 @@ +# 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/node_modules/graceful-fs/clone.js b/node_modules/graceful-fs/clone.js new file mode 100755 index 0000000..dff3cc8 --- /dev/null +++ b/node_modules/graceful-fs/clone.js @@ -0,0 +1,23 @@ +'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/node_modules/graceful-fs/graceful-fs.js b/node_modules/graceful-fs/graceful-fs.js new file mode 100755 index 0000000..8d5b89e --- /dev/null +++ b/node_modules/graceful-fs/graceful-fs.js @@ -0,0 +1,448 @@ +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/node_modules/graceful-fs/legacy-streams.js b/node_modules/graceful-fs/legacy-streams.js new file mode 100755 index 0000000..d617b50 --- /dev/null +++ b/node_modules/graceful-fs/legacy-streams.js @@ -0,0 +1,118 @@ +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/node_modules/graceful-fs/package.json b/node_modules/graceful-fs/package.json new file mode 100755 index 0000000..3057856 --- /dev/null +++ b/node_modules/graceful-fs/package.json @@ -0,0 +1,50 @@ +{ + "name": "graceful-fs", + "description": "A drop-in replacement for fs, making various improvements.", + "version": "4.2.10", + "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": "^12.7.0" + }, + "files": [ + "fs.js", + "graceful-fs.js", + "legacy-streams.js", + "polyfills.js", + "clone.js" + ] +} diff --git a/node_modules/graceful-fs/polyfills.js b/node_modules/graceful-fs/polyfills.js new file mode 100755 index 0000000..46dea36 --- /dev/null +++ b/node_modules/graceful-fs/polyfills.js @@ -0,0 +1,355 @@ +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") + && 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/node_modules/has-flag/index.d.ts b/node_modules/has-flag/index.d.ts new file mode 100755 index 0000000..a0a48c8 --- /dev/null +++ b/node_modules/has-flag/index.d.ts @@ -0,0 +1,39 @@ +/** +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/node_modules/has-flag/index.js b/node_modules/has-flag/index.js new file mode 100755 index 0000000..b6f80b1 --- /dev/null +++ b/node_modules/has-flag/index.js @@ -0,0 +1,8 @@ +'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/node_modules/has-flag/license b/node_modules/has-flag/license new file mode 100755 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/has-flag/license @@ -0,0 +1,9 @@ +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/node_modules/has-flag/package.json b/node_modules/has-flag/package.json new file mode 100755 index 0000000..a9cba4b --- /dev/null +++ b/node_modules/has-flag/package.json @@ -0,0 +1,46 @@ +{ + "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/node_modules/has-flag/readme.md b/node_modules/has-flag/readme.md new file mode 100755 index 0000000..3f72dff --- /dev/null +++ b/node_modules/has-flag/readme.md @@ -0,0 +1,89 @@ +# 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/node_modules/has-symbols/.eslintrc b/node_modules/has-symbols/.eslintrc old mode 100644 new mode 100755 diff --git a/node_modules/has-symbols/.github/FUNDING.yml b/node_modules/has-symbols/.github/FUNDING.yml old mode 100644 new mode 100755 diff --git a/node_modules/has-symbols/.nycrc b/node_modules/has-symbols/.nycrc old mode 100644 new mode 100755 diff --git a/node_modules/has-symbols/CHANGELOG.md b/node_modules/has-symbols/CHANGELOG.md old mode 100644 new mode 100755 diff --git a/node_modules/has-symbols/LICENSE b/node_modules/has-symbols/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/has-symbols/README.md b/node_modules/has-symbols/README.md old mode 100644 new mode 100755 diff --git a/node_modules/has-symbols/index.js b/node_modules/has-symbols/index.js old mode 100644 new mode 100755 diff --git a/node_modules/has-symbols/package.json b/node_modules/has-symbols/package.json old mode 100644 new mode 100755 diff --git a/node_modules/has-symbols/shams.js b/node_modules/has-symbols/shams.js old mode 100644 new mode 100755 diff --git a/node_modules/has-symbols/test/index.js b/node_modules/has-symbols/test/index.js old mode 100644 new mode 100755 diff --git a/node_modules/has-symbols/test/shams/core-js.js b/node_modules/has-symbols/test/shams/core-js.js old mode 100644 new mode 100755 diff --git a/node_modules/has-symbols/test/shams/get-own-property-symbols.js b/node_modules/has-symbols/test/shams/get-own-property-symbols.js old mode 100644 new mode 100755 diff --git a/node_modules/has-symbols/test/tests.js b/node_modules/has-symbols/test/tests.js old mode 100644 new mode 100755 diff --git a/node_modules/has/LICENSE-MIT b/node_modules/has/LICENSE-MIT old mode 100644 new mode 100755 diff --git a/node_modules/has/README.md b/node_modules/has/README.md old mode 100644 new mode 100755 diff --git a/node_modules/has/package.json b/node_modules/has/package.json old mode 100644 new mode 100755 diff --git a/node_modules/has/src/index.js b/node_modules/has/src/index.js old mode 100644 new mode 100755 diff --git a/node_modules/has/test/index.js b/node_modules/has/test/index.js old mode 100644 new mode 100755 diff --git a/node_modules/html-encoding-sniffer/LICENSE.txt b/node_modules/html-encoding-sniffer/LICENSE.txt old mode 100644 new mode 100755 diff --git a/node_modules/html-encoding-sniffer/README.md b/node_modules/html-encoding-sniffer/README.md old mode 100644 new mode 100755 diff --git a/node_modules/html-encoding-sniffer/lib/html-encoding-sniffer.js b/node_modules/html-encoding-sniffer/lib/html-encoding-sniffer.js old mode 100644 new mode 100755 diff --git a/node_modules/html-encoding-sniffer/package.json b/node_modules/html-encoding-sniffer/package.json old mode 100644 new mode 100755 diff --git a/node_modules/html-entities/LICENSE b/node_modules/html-entities/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/html-entities/README.md b/node_modules/html-entities/README.md old mode 100644 new mode 100755 diff --git a/node_modules/html-entities/lib/index.d.ts b/node_modules/html-entities/lib/index.d.ts old mode 100644 new mode 100755 diff --git a/node_modules/html-entities/lib/index.js b/node_modules/html-entities/lib/index.js old mode 100644 new mode 100755 diff --git a/node_modules/html-entities/lib/index.js.flow b/node_modules/html-entities/lib/index.js.flow old mode 100644 new mode 100755 diff --git a/node_modules/html-entities/lib/named-references.js b/node_modules/html-entities/lib/named-references.js old mode 100644 new mode 100755 diff --git a/node_modules/html-entities/lib/numeric-unicode-map.js b/node_modules/html-entities/lib/numeric-unicode-map.js old mode 100644 new mode 100755 diff --git a/node_modules/html-entities/lib/surrogate-pairs.js b/node_modules/html-entities/lib/surrogate-pairs.js old mode 100644 new mode 100755 diff --git a/node_modules/html-entities/package.json b/node_modules/html-entities/package.json old mode 100644 new mode 100755 diff --git a/node_modules/html-escaper/LICENSE.txt b/node_modules/html-escaper/LICENSE.txt new file mode 100755 index 0000000..dcfa0ae --- /dev/null +++ b/node_modules/html-escaper/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (C) 2017-present by Andrea Giammarchi - @WebReflection + +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/node_modules/html-escaper/README.md b/node_modules/html-escaper/README.md new file mode 100755 index 0000000..3dca341 --- /dev/null +++ b/node_modules/html-escaper/README.md @@ -0,0 +1,97 @@ +# html-escaper [![Build Status](https://travis-ci.org/WebReflection/html-escaper.svg?branch=master)](https://travis-ci.org/WebReflection/html-escaper) [![Coverage Status](https://coveralls.io/repos/github/WebReflection/html-escaper/badge.svg?branch=master)](https://coveralls.io/github/WebReflection/html-escaper?branch=master) +A simple module to escape/unescape common problematic entities. + + +### How +This package is available in npm so `npm install html-escaper` is all you need to do, using eventually the global flag too. + +Once the module is present +```js +var html = require('html-escaper'); + +// two basic methods +html.escape('string'); +html.unescape('escaped string'); +``` + + +### Why +there is basically one rule only: do not **ever** replace one char after another if you are transforming a string into another. + +```js +// WARNING: THIS IS WRONG +// if you are that kind of dev that does this +function escape(s) { + return s.replace(/&/g, "&") + .replace(//g, ">") + .replace(/'/g, "'") + .replace(/"/g, """); +} + +// you might be the same dev that does this too +function unescape(s) { + return s.replace(/&/g, "&") + .replace(/</g, "<") + .replace(/>/g, ">") + .replace(/'/g, "'") + .replace(/"/g, '"'); +} + +// guess what we have here ? +unescape('&lt;'); + +// now guess this XSS too ... +unescape('&lt;script&gt;alert("yo")&lt;/script&gt;'); + + +``` + +The last example will produce `` instead of the expected `<script>alert("yo")</script>`. + +Nothing like this could possibly happen if we grab all chars at once and either ways. +It's just a fortunate case that after swapping `&` with `&` no other replace will be affected, but it's not portable and universally a bad practice. + +Grab all chars at once, no excuses! + + + +**more details** +As somebody might think it's an `unescape` issue only, it's not. Being an anti-pattern with side effects works both ways. + +As example, changing the order of the replacement in escaping would produce the unexpected: +```js +function escape(s) { + return s.replace(//g, ">") + .replace(/'/g, "'") + .replace(/"/g, """) + .replace(/&/g, "&"); +} + +escape('<'); // &lt; instead of < +``` +If we do not want to code with the fear that the order wasn't perfect or that our order in either escaping or unescaping is different from the order another method or function used, if we understand the issue and we agree it's potentially a disaster prone approach, if we add the fact in this case creating 4 RegExp objects each time and invoking 4 times `.replace` trough the `String.prototype` is also potentially slower than creating one function only holding one object, or holding the function too, we should agree there is not absolutely any valid reason to keep proposing a char-by-char implementation. + +We have proofs this approach can fail already so ... why should we risk? Just avoid and grab all chars at once or simply use this tiny utility. + +### Backtick +Internt explorer < 9 has [some backtick issue](https://html5sec.org/#102) + +For compatibility sake with common server-side HTML entities encoders and decoders, and in order to have the most reliable I/O, this little utility will NOT fix this IE < 9 problem. + +It is also important to note that if we create valid HTML and we set attributes at runtime through this utility, backticks in strings cannot possibly affect attribute behaviors. + +```js +var img = new Image(); +img.src = html.escape( + 'x` `"` `' +); +// it won't cause problems even in IE < 9 +``` + +**However**, if you use `innerHTML` and you target IE < 9 then [this **might** be a problem](https://github.com/nette/nette/issues/1496). + +Accordingly, if you need more chars and/or backticks to be escaped and unescaped, feel free to use alternatives like [lodash](https://github.com/lodash/lodash) or [he](https://www.npmjs.com/package/he) + +Here a bit more of [my POV](https://github.com/WebReflection/html-escaper/commit/52d554fc6e8583b6ffdd357967cf71962fc07cf6#commitcomment-10625122) and why I haven't implemented same thing alternatives did. Good news: those are alternatives ;-) \ No newline at end of file diff --git a/node_modules/html-escaper/cjs/index.js b/node_modules/html-escaper/cjs/index.js new file mode 100755 index 0000000..164a34c --- /dev/null +++ b/node_modules/html-escaper/cjs/index.js @@ -0,0 +1,65 @@ +'use strict'; +/** + * Copyright (C) 2017-present by Andrea Giammarchi - @WebReflection + * + * 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 replace = ''.replace; + +var ca = /[&<>'"]/g; +var es = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g; + +var esca = { + '&': '&', + '<': '<', + '>': '>', + "'": ''', + '"': '"' +}; +var unes = { + '&': '&', + '&': '&', + '<': '<', + '<': '<', + '>': '>', + '>': '>', + ''': "'", + ''': "'", + '"': '"', + '"': '"' +}; + +function escape(es) { + return replace.call(es, ca, pe); +} +exports.escape = escape; + +function unescape(un) { + return replace.call(un, es, cape); +} +exports.unescape = unescape; + +function pe(m) { + return esca[m]; +} + +function cape(m) { + return unes[m]; +} diff --git a/node_modules/html-escaper/cjs/package.json b/node_modules/html-escaper/cjs/package.json new file mode 100755 index 0000000..0292b99 --- /dev/null +++ b/node_modules/html-escaper/cjs/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} \ No newline at end of file diff --git a/node_modules/html-escaper/esm/index.js b/node_modules/html-escaper/esm/index.js new file mode 100755 index 0000000..e05b93f --- /dev/null +++ b/node_modules/html-escaper/esm/index.js @@ -0,0 +1,62 @@ +/** + * Copyright (C) 2017-present by Andrea Giammarchi - @WebReflection + * + * 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 replace = ''.replace; + +var ca = /[&<>'"]/g; +var es = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g; + +var esca = { + '&': '&', + '<': '<', + '>': '>', + "'": ''', + '"': '"' +}; +var unes = { + '&': '&', + '&': '&', + '<': '<', + '<': '<', + '>': '>', + '>': '>', + ''': "'", + ''': "'", + '"': '"', + '"': '"' +}; + +export function escape(es) { + return replace.call(es, ca, pe); +}; + +export function unescape(un) { + return replace.call(un, es, cape); +}; + +function pe(m) { + return esca[m]; +} + +function cape(m) { + return unes[m]; +} diff --git a/node_modules/html-escaper/index.js b/node_modules/html-escaper/index.js new file mode 100755 index 0000000..6c3f2ab --- /dev/null +++ b/node_modules/html-escaper/index.js @@ -0,0 +1,70 @@ +var html = (function (exports) { + 'use strict'; + + /** + * Copyright (C) 2017-present by Andrea Giammarchi - @WebReflection + * + * 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 replace = ''.replace; + + var ca = /[&<>'"]/g; + var es = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g; + + var esca = { + '&': '&', + '<': '<', + '>': '>', + "'": ''', + '"': '"' + }; + var unes = { + '&': '&', + '&': '&', + '<': '<', + '<': '<', + '>': '>', + '>': '>', + ''': "'", + ''': "'", + '"': '"', + '"': '"' + }; + + function escape(es) { + return replace.call(es, ca, pe); + } + function unescape(un) { + return replace.call(un, es, cape); + } + function pe(m) { + return esca[m]; + } + + function cape(m) { + return unes[m]; + } + + exports.escape = escape; + exports.unescape = unescape; + + return exports; + +}({})); diff --git a/node_modules/html-escaper/min.js b/node_modules/html-escaper/min.js new file mode 100755 index 0000000..54d0c23 --- /dev/null +++ b/node_modules/html-escaper/min.js @@ -0,0 +1 @@ +var html=function(t){"use strict";var n="".replace,u=/[&<>'"]/g,r=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g,a={"&":"&","<":"<",">":">","'":"'",'"':"""},e={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'};function c(t){return a[t]}function o(t){return e[t]}return t.escape=function(t){return n.call(t,u,c)},t.unescape=function(t){return n.call(t,r,o)},t}({}); \ No newline at end of file diff --git a/node_modules/html-escaper/package.json b/node_modules/html-escaper/package.json new file mode 100755 index 0000000..81d06a9 --- /dev/null +++ b/node_modules/html-escaper/package.json @@ -0,0 +1,42 @@ +{ + "name": "html-escaper", + "version": "2.0.2", + "description": "fast and safe way to escape and unescape &<>'\" chars", + "main": "./cjs/index.js", + "unpkg": "min.js", + "scripts": { + "build": "npm run cjs && npm run rollup && npm run minify && npm test && npm run size", + "cjs": "ascjs esm cjs", + "coveralls": "cat ./coverage/lcov.info | coveralls", + "minify": "uglifyjs index.js --comments=/^!/ --compress --mangle -o min.js", + "rollup": "rollup --config rollup.config.js", + "size": "cat index.js | wc -c;cat min.js | wc -c;gzip -c min.js | wc -c", + "test": "istanbul cover ./test/index.js" + }, + "module": "./esm/index.js", + "repository": { + "type": "git", + "url": "https://github.com/WebReflection/html-escaper.git" + }, + "keywords": [ + "html", + "escape", + "encode", + "unescape", + "decode", + "entities" + ], + "author": "Andrea Giammarchi", + "license": "MIT", + "bugs": { + "url": "https://github.com/WebReflection/html-escaper/issues" + }, + "homepage": "https://github.com/WebReflection/html-escaper", + "devDependencies": { + "ascjs": "^3.1.2", + "coveralls": "^3.0.11", + "istanbul": "^0.4.5", + "rollup": "^2.1.0", + "uglify-js": "^3.8.0" + } +} diff --git a/node_modules/html-escaper/test/index.js b/node_modules/html-escaper/test/index.js new file mode 100755 index 0000000..0eb00de --- /dev/null +++ b/node_modules/html-escaper/test/index.js @@ -0,0 +1,23 @@ +delete Object.freeze; + +var html = require('../cjs'); + +console.assert( + html.escape('&<>\'"') === '&<>'"', + 'correct escape' +); + +console.assert( + html.escape('<>\'"&') === '<>'"&', + 'correct inverted escape' +); + +console.assert( + '&<>\'"' === html.unescape('&<>'"'), + 'correct unescape' +); + +console.assert( + '<>\'"&' === html.unescape('<>'"&'), + 'correct inverted unescape' +); diff --git a/node_modules/html-escaper/test/package.json b/node_modules/html-escaper/test/package.json new file mode 100755 index 0000000..0292b99 --- /dev/null +++ b/node_modules/html-escaper/test/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} \ No newline at end of file diff --git a/node_modules/http-errors/HISTORY.md b/node_modules/http-errors/HISTORY.md old mode 100644 new mode 100755 diff --git a/node_modules/http-errors/LICENSE b/node_modules/http-errors/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/http-errors/README.md b/node_modules/http-errors/README.md old mode 100644 new mode 100755 diff --git a/node_modules/http-errors/index.js b/node_modules/http-errors/index.js old mode 100644 new mode 100755 diff --git a/node_modules/http-errors/package.json b/node_modules/http-errors/package.json old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/README.md b/node_modules/http-proxy-agent/README.md old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/dist/agent.d.ts b/node_modules/http-proxy-agent/dist/agent.d.ts old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/dist/agent.js b/node_modules/http-proxy-agent/dist/agent.js old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/dist/agent.js.map b/node_modules/http-proxy-agent/dist/agent.js.map old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/dist/index.d.ts b/node_modules/http-proxy-agent/dist/index.d.ts old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/dist/index.js b/node_modules/http-proxy-agent/dist/index.js old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/dist/index.js.map b/node_modules/http-proxy-agent/dist/index.js.map old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/node_modules/debug/LICENSE b/node_modules/http-proxy-agent/node_modules/debug/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/node_modules/debug/README.md b/node_modules/http-proxy-agent/node_modules/debug/README.md old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/node_modules/debug/package.json b/node_modules/http-proxy-agent/node_modules/debug/package.json old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/node_modules/debug/src/browser.js b/node_modules/http-proxy-agent/node_modules/debug/src/browser.js old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/node_modules/debug/src/common.js b/node_modules/http-proxy-agent/node_modules/debug/src/common.js old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/node_modules/debug/src/index.js b/node_modules/http-proxy-agent/node_modules/debug/src/index.js old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/node_modules/debug/src/node.js b/node_modules/http-proxy-agent/node_modules/debug/src/node.js old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/node_modules/ms/index.js b/node_modules/http-proxy-agent/node_modules/ms/index.js old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/node_modules/ms/license.md b/node_modules/http-proxy-agent/node_modules/ms/license.md old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/node_modules/ms/package.json b/node_modules/http-proxy-agent/node_modules/ms/package.json old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/node_modules/ms/readme.md b/node_modules/http-proxy-agent/node_modules/ms/readme.md old mode 100644 new mode 100755 diff --git a/node_modules/http-proxy-agent/package.json b/node_modules/http-proxy-agent/package.json old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/README.md b/node_modules/https-proxy-agent/README.md old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/dist/agent.d.ts b/node_modules/https-proxy-agent/dist/agent.d.ts old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/dist/agent.js b/node_modules/https-proxy-agent/dist/agent.js old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/dist/agent.js.map b/node_modules/https-proxy-agent/dist/agent.js.map old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/dist/index.d.ts b/node_modules/https-proxy-agent/dist/index.d.ts old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/dist/index.js b/node_modules/https-proxy-agent/dist/index.js old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/dist/index.js.map b/node_modules/https-proxy-agent/dist/index.js.map old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts b/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/dist/parse-proxy-response.js b/node_modules/https-proxy-agent/dist/parse-proxy-response.js old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map b/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/node_modules/debug/LICENSE b/node_modules/https-proxy-agent/node_modules/debug/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/node_modules/debug/README.md b/node_modules/https-proxy-agent/node_modules/debug/README.md old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/node_modules/debug/package.json b/node_modules/https-proxy-agent/node_modules/debug/package.json old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/node_modules/debug/src/browser.js b/node_modules/https-proxy-agent/node_modules/debug/src/browser.js old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/node_modules/debug/src/common.js b/node_modules/https-proxy-agent/node_modules/debug/src/common.js old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/node_modules/debug/src/index.js b/node_modules/https-proxy-agent/node_modules/debug/src/index.js old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/node_modules/debug/src/node.js b/node_modules/https-proxy-agent/node_modules/debug/src/node.js old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/node_modules/ms/index.js b/node_modules/https-proxy-agent/node_modules/ms/index.js old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/node_modules/ms/license.md b/node_modules/https-proxy-agent/node_modules/ms/license.md old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/node_modules/ms/package.json b/node_modules/https-proxy-agent/node_modules/ms/package.json old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/node_modules/ms/readme.md b/node_modules/https-proxy-agent/node_modules/ms/readme.md old mode 100644 new mode 100755 diff --git a/node_modules/https-proxy-agent/package.json b/node_modules/https-proxy-agent/package.json old mode 100644 new mode 100755 diff --git a/node_modules/human-signals/CHANGELOG.md b/node_modules/human-signals/CHANGELOG.md new file mode 100755 index 0000000..70d0392 --- /dev/null +++ b/node_modules/human-signals/CHANGELOG.md @@ -0,0 +1,11 @@ +# 2.1.0 + +## TypeScript types + +- Add [TypeScript definitions](src/main.d.ts) + +# 2.0.0 + +## Breaking changes + +- Minimal supported Node.js version is now `10.17.0` diff --git a/node_modules/human-signals/LICENSE b/node_modules/human-signals/LICENSE new file mode 100755 index 0000000..9af9492 --- /dev/null +++ b/node_modules/human-signals/LICENSE @@ -0,0 +1,201 @@ + 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 2019 ehmicky + + 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/node_modules/human-signals/README.md b/node_modules/human-signals/README.md new file mode 100755 index 0000000..2af37c3 --- /dev/null +++ b/node_modules/human-signals/README.md @@ -0,0 +1,165 @@ +[![Codecov](https://img.shields.io/codecov/c/github/ehmicky/human-signals.svg?label=tested&logo=codecov)](https://codecov.io/gh/ehmicky/human-signals) +[![Travis](https://img.shields.io/badge/cross-platform-4cc61e.svg?logo=travis)](https://travis-ci.org/ehmicky/human-signals) +[![Node](https://img.shields.io/node/v/human-signals.svg?logo=node.js)](https://www.npmjs.com/package/human-signals) +[![Gitter](https://img.shields.io/gitter/room/ehmicky/human-signals.svg?logo=gitter)](https://gitter.im/ehmicky/human-signals) +[![Twitter](https://img.shields.io/badge/%E2%80%8B-twitter-4cc61e.svg?logo=twitter)](https://twitter.com/intent/follow?screen_name=ehmicky) +[![Medium](https://img.shields.io/badge/%E2%80%8B-medium-4cc61e.svg?logo=medium)](https://medium.com/@ehmicky) + +Human-friendly process signals. + +This is a map of known process signals with some information about each signal. + +Unlike +[`os.constants.signals`](https://nodejs.org/api/os.html#os_signal_constants) +this includes: + +- human-friendly [descriptions](#description) +- [default actions](#action), including whether they [can be prevented](#forced) +- whether the signal is [supported](#supported) by the current OS + +# Example + +```js +const { signalsByName, signalsByNumber } = require('human-signals') + +console.log(signalsByName.SIGINT) +// { +// name: 'SIGINT', +// number: 2, +// description: 'User interruption with CTRL-C', +// supported: true, +// action: 'terminate', +// forced: false, +// standard: 'ansi' +// } + +console.log(signalsByNumber[8]) +// { +// name: 'SIGFPE', +// number: 8, +// description: 'Floating point arithmetic error', +// supported: true, +// action: 'core', +// forced: false, +// standard: 'ansi' +// } +``` + +# Install + +```bash +npm install human-signals +``` + +# Usage + +## signalsByName + +_Type_: `object` + +Object whose keys are signal [names](#name) and values are +[signal objects](#signal). + +## signalsByNumber + +_Type_: `object` + +Object whose keys are signal [numbers](#number) and values are +[signal objects](#signal). + +## signal + +_Type_: `object` + +Signal object with the following properties. + +### name + +_Type_: `string` + +Standard name of the signal, for example `'SIGINT'`. + +### number + +_Type_: `number` + +Code number of the signal, for example `2`. While most `number` are +cross-platform, some are different between different OS. + +### description + +_Type_: `string` + +Human-friendly description for the signal, for example +`'User interruption with CTRL-C'`. + +### supported + +_Type_: `boolean` + +Whether the current OS can handle this signal in Node.js using +[`process.on(name, handler)`](https://nodejs.org/api/process.html#process_signal_events). + +The list of supported signals +[is OS-specific](https://github.com/ehmicky/cross-platform-node-guide/blob/master/docs/6_networking_ipc/signals.md#cross-platform-signals). + +### action + +_Type_: `string`\ +_Enum_: `'terminate'`, `'core'`, `'ignore'`, `'pause'`, `'unpause'` + +What is the default action for this signal when it is not handled. + +### forced + +_Type_: `boolean` + +Whether the signal's default action cannot be prevented. This is `true` for +`SIGTERM`, `SIGKILL` and `SIGSTOP`. + +### standard + +_Type_: `string`\ +_Enum_: `'ansi'`, `'posix'`, `'bsd'`, `'systemv'`, `'other'` + +Which standard defined that signal. + +# Support + +If you found a bug or would like a new feature, _don't hesitate_ to +[submit an issue on GitHub](../../issues). + +For other questions, feel free to +[chat with us on Gitter](https://gitter.im/ehmicky/human-signals). + +Everyone is welcome regardless of personal background. We enforce a +[Code of conduct](CODE_OF_CONDUCT.md) in order to promote a positive and +inclusive environment. + +# Contributing + +This project was made with ❤️. The simplest way to give back is by starring and +sharing it online. + +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 +[guidelines](CONTRIBUTING.md). Pull requests are welcome! + +Thanks go to our wonderful contributors: + + + + + + + + + +

ehmicky

💻 🎨 🤔 📖

electrovir

💻
+ + + + + diff --git a/node_modules/human-signals/build/src/core.js b/node_modules/human-signals/build/src/core.js new file mode 100755 index 0000000..98e8fce --- /dev/null +++ b/node_modules/human-signals/build/src/core.js @@ -0,0 +1,273 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SIGNALS=void 0; + +const SIGNALS=[ +{ +name:"SIGHUP", +number:1, +action:"terminate", +description:"Terminal closed", +standard:"posix"}, + +{ +name:"SIGINT", +number:2, +action:"terminate", +description:"User interruption with CTRL-C", +standard:"ansi"}, + +{ +name:"SIGQUIT", +number:3, +action:"core", +description:"User interruption with CTRL-\\", +standard:"posix"}, + +{ +name:"SIGILL", +number:4, +action:"core", +description:"Invalid machine instruction", +standard:"ansi"}, + +{ +name:"SIGTRAP", +number:5, +action:"core", +description:"Debugger breakpoint", +standard:"posix"}, + +{ +name:"SIGABRT", +number:6, +action:"core", +description:"Aborted", +standard:"ansi"}, + +{ +name:"SIGIOT", +number:6, +action:"core", +description:"Aborted", +standard:"bsd"}, + +{ +name:"SIGBUS", +number:7, +action:"core", +description: +"Bus error due to misaligned, non-existing address or paging error", +standard:"bsd"}, + +{ +name:"SIGEMT", +number:7, +action:"terminate", +description:"Command should be emulated but is not implemented", +standard:"other"}, + +{ +name:"SIGFPE", +number:8, +action:"core", +description:"Floating point arithmetic error", +standard:"ansi"}, + +{ +name:"SIGKILL", +number:9, +action:"terminate", +description:"Forced termination", +standard:"posix", +forced:true}, + +{ +name:"SIGUSR1", +number:10, +action:"terminate", +description:"Application-specific signal", +standard:"posix"}, + +{ +name:"SIGSEGV", +number:11, +action:"core", +description:"Segmentation fault", +standard:"ansi"}, + +{ +name:"SIGUSR2", +number:12, +action:"terminate", +description:"Application-specific signal", +standard:"posix"}, + +{ +name:"SIGPIPE", +number:13, +action:"terminate", +description:"Broken pipe or socket", +standard:"posix"}, + +{ +name:"SIGALRM", +number:14, +action:"terminate", +description:"Timeout or timer", +standard:"posix"}, + +{ +name:"SIGTERM", +number:15, +action:"terminate", +description:"Termination", +standard:"ansi"}, + +{ +name:"SIGSTKFLT", +number:16, +action:"terminate", +description:"Stack is empty or overflowed", +standard:"other"}, + +{ +name:"SIGCHLD", +number:17, +action:"ignore", +description:"Child process terminated, paused or unpaused", +standard:"posix"}, + +{ +name:"SIGCLD", +number:17, +action:"ignore", +description:"Child process terminated, paused or unpaused", +standard:"other"}, + +{ +name:"SIGCONT", +number:18, +action:"unpause", +description:"Unpaused", +standard:"posix", +forced:true}, + +{ +name:"SIGSTOP", +number:19, +action:"pause", +description:"Paused", +standard:"posix", +forced:true}, + +{ +name:"SIGTSTP", +number:20, +action:"pause", +description:"Paused using CTRL-Z or \"suspend\"", +standard:"posix"}, + +{ +name:"SIGTTIN", +number:21, +action:"pause", +description:"Background process cannot read terminal input", +standard:"posix"}, + +{ +name:"SIGBREAK", +number:21, +action:"terminate", +description:"User interruption with CTRL-BREAK", +standard:"other"}, + +{ +name:"SIGTTOU", +number:22, +action:"pause", +description:"Background process cannot write to terminal output", +standard:"posix"}, + +{ +name:"SIGURG", +number:23, +action:"ignore", +description:"Socket received out-of-band data", +standard:"bsd"}, + +{ +name:"SIGXCPU", +number:24, +action:"core", +description:"Process timed out", +standard:"bsd"}, + +{ +name:"SIGXFSZ", +number:25, +action:"core", +description:"File too big", +standard:"bsd"}, + +{ +name:"SIGVTALRM", +number:26, +action:"terminate", +description:"Timeout or timer", +standard:"bsd"}, + +{ +name:"SIGPROF", +number:27, +action:"terminate", +description:"Timeout or timer", +standard:"bsd"}, + +{ +name:"SIGWINCH", +number:28, +action:"ignore", +description:"Terminal window size changed", +standard:"bsd"}, + +{ +name:"SIGIO", +number:29, +action:"terminate", +description:"I/O is available", +standard:"other"}, + +{ +name:"SIGPOLL", +number:29, +action:"terminate", +description:"Watched event", +standard:"other"}, + +{ +name:"SIGINFO", +number:29, +action:"ignore", +description:"Request for process information", +standard:"other"}, + +{ +name:"SIGPWR", +number:30, +action:"terminate", +description:"Device running out of power", +standard:"systemv"}, + +{ +name:"SIGSYS", +number:31, +action:"core", +description:"Invalid system call", +standard:"other"}, + +{ +name:"SIGUNUSED", +number:31, +action:"terminate", +description:"Invalid system call", +standard:"other"}];exports.SIGNALS=SIGNALS; +//# sourceMappingURL=core.js.map \ No newline at end of file diff --git a/node_modules/human-signals/build/src/core.js.map b/node_modules/human-signals/build/src/core.js.map new file mode 100755 index 0000000..cbfce26 --- /dev/null +++ b/node_modules/human-signals/build/src/core.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/core.js"],"names":["SIGNALS","name","number","action","description","standard","forced"],"mappings":"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","sourcesContent":["/* eslint-disable max-lines */\n// List of known process signals with information about them\nexport const SIGNALS = [\n {\n name: 'SIGHUP',\n number: 1,\n action: 'terminate',\n description: 'Terminal closed',\n standard: 'posix',\n },\n {\n name: 'SIGINT',\n number: 2,\n action: 'terminate',\n description: 'User interruption with CTRL-C',\n standard: 'ansi',\n },\n {\n name: 'SIGQUIT',\n number: 3,\n action: 'core',\n description: 'User interruption with CTRL-\\\\',\n standard: 'posix',\n },\n {\n name: 'SIGILL',\n number: 4,\n action: 'core',\n description: 'Invalid machine instruction',\n standard: 'ansi',\n },\n {\n name: 'SIGTRAP',\n number: 5,\n action: 'core',\n description: 'Debugger breakpoint',\n standard: 'posix',\n },\n {\n name: 'SIGABRT',\n number: 6,\n action: 'core',\n description: 'Aborted',\n standard: 'ansi',\n },\n {\n name: 'SIGIOT',\n number: 6,\n action: 'core',\n description: 'Aborted',\n standard: 'bsd',\n },\n {\n name: 'SIGBUS',\n number: 7,\n action: 'core',\n description:\n 'Bus error due to misaligned, non-existing address or paging error',\n standard: 'bsd',\n },\n {\n name: 'SIGEMT',\n number: 7,\n action: 'terminate',\n description: 'Command should be emulated but is not implemented',\n standard: 'other',\n },\n {\n name: 'SIGFPE',\n number: 8,\n action: 'core',\n description: 'Floating point arithmetic error',\n standard: 'ansi',\n },\n {\n name: 'SIGKILL',\n number: 9,\n action: 'terminate',\n description: 'Forced termination',\n standard: 'posix',\n forced: true,\n },\n {\n name: 'SIGUSR1',\n number: 10,\n action: 'terminate',\n description: 'Application-specific signal',\n standard: 'posix',\n },\n {\n name: 'SIGSEGV',\n number: 11,\n action: 'core',\n description: 'Segmentation fault',\n standard: 'ansi',\n },\n {\n name: 'SIGUSR2',\n number: 12,\n action: 'terminate',\n description: 'Application-specific signal',\n standard: 'posix',\n },\n {\n name: 'SIGPIPE',\n number: 13,\n action: 'terminate',\n description: 'Broken pipe or socket',\n standard: 'posix',\n },\n {\n name: 'SIGALRM',\n number: 14,\n action: 'terminate',\n description: 'Timeout or timer',\n standard: 'posix',\n },\n {\n name: 'SIGTERM',\n number: 15,\n action: 'terminate',\n description: 'Termination',\n standard: 'ansi',\n },\n {\n name: 'SIGSTKFLT',\n number: 16,\n action: 'terminate',\n description: 'Stack is empty or overflowed',\n standard: 'other',\n },\n {\n name: 'SIGCHLD',\n number: 17,\n action: 'ignore',\n description: 'Child process terminated, paused or unpaused',\n standard: 'posix',\n },\n {\n name: 'SIGCLD',\n number: 17,\n action: 'ignore',\n description: 'Child process terminated, paused or unpaused',\n standard: 'other',\n },\n {\n name: 'SIGCONT',\n number: 18,\n action: 'unpause',\n description: 'Unpaused',\n standard: 'posix',\n forced: true,\n },\n {\n name: 'SIGSTOP',\n number: 19,\n action: 'pause',\n description: 'Paused',\n standard: 'posix',\n forced: true,\n },\n {\n name: 'SIGTSTP',\n number: 20,\n action: 'pause',\n description: 'Paused using CTRL-Z or \"suspend\"',\n standard: 'posix',\n },\n {\n name: 'SIGTTIN',\n number: 21,\n action: 'pause',\n description: 'Background process cannot read terminal input',\n standard: 'posix',\n },\n {\n name: 'SIGBREAK',\n number: 21,\n action: 'terminate',\n description: 'User interruption with CTRL-BREAK',\n standard: 'other',\n },\n {\n name: 'SIGTTOU',\n number: 22,\n action: 'pause',\n description: 'Background process cannot write to terminal output',\n standard: 'posix',\n },\n {\n name: 'SIGURG',\n number: 23,\n action: 'ignore',\n description: 'Socket received out-of-band data',\n standard: 'bsd',\n },\n {\n name: 'SIGXCPU',\n number: 24,\n action: 'core',\n description: 'Process timed out',\n standard: 'bsd',\n },\n {\n name: 'SIGXFSZ',\n number: 25,\n action: 'core',\n description: 'File too big',\n standard: 'bsd',\n },\n {\n name: 'SIGVTALRM',\n number: 26,\n action: 'terminate',\n description: 'Timeout or timer',\n standard: 'bsd',\n },\n {\n name: 'SIGPROF',\n number: 27,\n action: 'terminate',\n description: 'Timeout or timer',\n standard: 'bsd',\n },\n {\n name: 'SIGWINCH',\n number: 28,\n action: 'ignore',\n description: 'Terminal window size changed',\n standard: 'bsd',\n },\n {\n name: 'SIGIO',\n number: 29,\n action: 'terminate',\n description: 'I/O is available',\n standard: 'other',\n },\n {\n name: 'SIGPOLL',\n number: 29,\n action: 'terminate',\n description: 'Watched event',\n standard: 'other',\n },\n {\n name: 'SIGINFO',\n number: 29,\n action: 'ignore',\n description: 'Request for process information',\n standard: 'other',\n },\n {\n name: 'SIGPWR',\n number: 30,\n action: 'terminate',\n description: 'Device running out of power',\n standard: 'systemv',\n },\n {\n name: 'SIGSYS',\n number: 31,\n action: 'core',\n description: 'Invalid system call',\n standard: 'other',\n },\n {\n name: 'SIGUNUSED',\n number: 31,\n action: 'terminate',\n description: 'Invalid system call',\n standard: 'other',\n },\n]\n/* eslint-enable max-lines */\n"],"file":"src/core.js"} \ No newline at end of file diff --git a/node_modules/human-signals/build/src/main.d.ts b/node_modules/human-signals/build/src/main.d.ts new file mode 100755 index 0000000..2dc5ea7 --- /dev/null +++ b/node_modules/human-signals/build/src/main.d.ts @@ -0,0 +1,52 @@ +/** + * Object whose keys are signal names and values are signal objects. + */ +export declare const signalsByName: { [signalName: string]: Signal } +/** + * Object whose keys are signal numbers and values are signal objects. + */ +export declare const signalsByNumber: { [signalNumber: string]: Signal } + +export declare type SignalAction = + | 'terminate' + | 'core' + | 'ignore' + | 'pause' + | 'unpause' +export declare type SignalStandard = + | 'ansi' + | 'posix' + | 'bsd' + | 'systemv' + | 'other' + +export declare type Signal = { + /** + * Standard name of the signal, for example 'SIGINT'. + */ + name: string + /** + * Code number of the signal, for example 2. While most number are cross-platform, some are different between different OS. + */ + number: number + /** + * Human-friendly description for the signal, for example 'User interruption with CTRL-C'. + */ + description: string + /** + * Whether the current OS can handle this signal in Node.js using process.on(name, handler). The list of supported signals is OS-specific. + */ + supported: boolean + /** + * What is the default action for this signal when it is not handled. + */ + action: SignalAction + /** + * Whether the signal's default action cannot be prevented. This is true for SIGTERM, SIGKILL and SIGSTOP. + */ + forced: boolean + /** + * Which standard defined that signal. + */ + standard: SignalStandard +} diff --git a/node_modules/human-signals/build/src/main.js b/node_modules/human-signals/build/src/main.js new file mode 100755 index 0000000..88f5fd2 --- /dev/null +++ b/node_modules/human-signals/build/src/main.js @@ -0,0 +1,71 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.signalsByNumber=exports.signalsByName=void 0;var _os=require("os"); + +var _signals=require("./signals.js"); +var _realtime=require("./realtime.js"); + + + +const getSignalsByName=function(){ +const signals=(0,_signals.getSignals)(); +return signals.reduce(getSignalByName,{}); +}; + +const getSignalByName=function( +signalByNameMemo, +{name,number,description,supported,action,forced,standard}) +{ +return{ +...signalByNameMemo, +[name]:{name,number,description,supported,action,forced,standard}}; + +}; + +const signalsByName=getSignalsByName();exports.signalsByName=signalsByName; + + + + +const getSignalsByNumber=function(){ +const signals=(0,_signals.getSignals)(); +const length=_realtime.SIGRTMAX+1; +const signalsA=Array.from({length},(value,number)=> +getSignalByNumber(number,signals)); + +return Object.assign({},...signalsA); +}; + +const getSignalByNumber=function(number,signals){ +const signal=findSignalByNumber(number,signals); + +if(signal===undefined){ +return{}; +} + +const{name,description,supported,action,forced,standard}=signal; +return{ +[number]:{ +name, +number, +description, +supported, +action, +forced, +standard}}; + + +}; + + + +const findSignalByNumber=function(number,signals){ +const signal=signals.find(({name})=>_os.constants.signals[name]===number); + +if(signal!==undefined){ +return signal; +} + +return signals.find(signalA=>signalA.number===number); +}; + +const signalsByNumber=getSignalsByNumber();exports.signalsByNumber=signalsByNumber; +//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/node_modules/human-signals/build/src/main.js.map b/node_modules/human-signals/build/src/main.js.map new file mode 100755 index 0000000..3fdcede --- /dev/null +++ b/node_modules/human-signals/build/src/main.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/main.js"],"names":["getSignalsByName","signals","reduce","getSignalByName","signalByNameMemo","name","number","description","supported","action","forced","standard","signalsByName","getSignalsByNumber","length","SIGRTMAX","signalsA","Array","from","value","getSignalByNumber","Object","assign","signal","findSignalByNumber","undefined","find","constants","signalA","signalsByNumber"],"mappings":"2HAAA;;AAEA;AACA;;;;AAIA,KAAMA,CAAAA,gBAAgB,CAAG,UAAW;AAClC,KAAMC,CAAAA,OAAO,CAAG,yBAAhB;AACA,MAAOA,CAAAA,OAAO,CAACC,MAAR,CAAeC,eAAf,CAAgC,EAAhC,CAAP;AACD,CAHD;;AAKA,KAAMA,CAAAA,eAAe,CAAG;AACtBC,gBADsB;AAEtB,CAAEC,IAAF,CAAQC,MAAR,CAAgBC,WAAhB,CAA6BC,SAA7B,CAAwCC,MAAxC,CAAgDC,MAAhD,CAAwDC,QAAxD,CAFsB;AAGtB;AACA,MAAO;AACL,GAAGP,gBADE;AAEL,CAACC,IAAD,EAAQ,CAAEA,IAAF,CAAQC,MAAR,CAAgBC,WAAhB,CAA6BC,SAA7B,CAAwCC,MAAxC,CAAgDC,MAAhD,CAAwDC,QAAxD,CAFH,CAAP;;AAID,CARD;;AAUO,KAAMC,CAAAA,aAAa,CAAGZ,gBAAgB,EAAtC,C;;;;;AAKP,KAAMa,CAAAA,kBAAkB,CAAG,UAAW;AACpC,KAAMZ,CAAAA,OAAO,CAAG,yBAAhB;AACA,KAAMa,CAAAA,MAAM,CAAGC,mBAAW,CAA1B;AACA,KAAMC,CAAAA,QAAQ,CAAGC,KAAK,CAACC,IAAN,CAAW,CAAEJ,MAAF,CAAX,CAAuB,CAACK,KAAD,CAAQb,MAAR;AACtCc,iBAAiB,CAACd,MAAD,CAASL,OAAT,CADF,CAAjB;;AAGA,MAAOoB,CAAAA,MAAM,CAACC,MAAP,CAAc,EAAd,CAAkB,GAAGN,QAArB,CAAP;AACD,CAPD;;AASA,KAAMI,CAAAA,iBAAiB,CAAG,SAASd,MAAT,CAAiBL,OAAjB,CAA0B;AAClD,KAAMsB,CAAAA,MAAM,CAAGC,kBAAkB,CAAClB,MAAD,CAASL,OAAT,CAAjC;;AAEA,GAAIsB,MAAM,GAAKE,SAAf,CAA0B;AACxB,MAAO,EAAP;AACD;;AAED,KAAM,CAAEpB,IAAF,CAAQE,WAAR,CAAqBC,SAArB,CAAgCC,MAAhC,CAAwCC,MAAxC,CAAgDC,QAAhD,EAA6DY,MAAnE;AACA,MAAO;AACL,CAACjB,MAAD,EAAU;AACRD,IADQ;AAERC,MAFQ;AAGRC,WAHQ;AAIRC,SAJQ;AAKRC,MALQ;AAMRC,MANQ;AAORC,QAPQ,CADL,CAAP;;;AAWD,CAnBD;;;;AAuBA,KAAMa,CAAAA,kBAAkB,CAAG,SAASlB,MAAT,CAAiBL,OAAjB,CAA0B;AACnD,KAAMsB,CAAAA,MAAM,CAAGtB,OAAO,CAACyB,IAAR,CAAa,CAAC,CAAErB,IAAF,CAAD,GAAcsB,cAAU1B,OAAV,CAAkBI,IAAlB,IAA4BC,MAAvD,CAAf;;AAEA,GAAIiB,MAAM,GAAKE,SAAf,CAA0B;AACxB,MAAOF,CAAAA,MAAP;AACD;;AAED,MAAOtB,CAAAA,OAAO,CAACyB,IAAR,CAAaE,OAAO,EAAIA,OAAO,CAACtB,MAAR,GAAmBA,MAA3C,CAAP;AACD,CARD;;AAUO,KAAMuB,CAAAA,eAAe,CAAGhB,kBAAkB,EAA1C,C","sourcesContent":["import { constants } from 'os'\n\nimport { getSignals } from './signals.js'\nimport { SIGRTMAX } from './realtime.js'\n\n// Retrieve `signalsByName`, an object mapping signal name to signal properties.\n// We make sure the object is sorted by `number`.\nconst getSignalsByName = function() {\n const signals = getSignals()\n return signals.reduce(getSignalByName, {})\n}\n\nconst getSignalByName = function(\n signalByNameMemo,\n { name, number, description, supported, action, forced, standard },\n) {\n return {\n ...signalByNameMemo,\n [name]: { name, number, description, supported, action, forced, standard },\n }\n}\n\nexport const signalsByName = getSignalsByName()\n\n// Retrieve `signalsByNumber`, an object mapping signal number to signal\n// properties.\n// We make sure the object is sorted by `number`.\nconst getSignalsByNumber = function() {\n const signals = getSignals()\n const length = SIGRTMAX + 1\n const signalsA = Array.from({ length }, (value, number) =>\n getSignalByNumber(number, signals),\n )\n return Object.assign({}, ...signalsA)\n}\n\nconst getSignalByNumber = function(number, signals) {\n const signal = findSignalByNumber(number, signals)\n\n if (signal === undefined) {\n return {}\n }\n\n const { name, description, supported, action, forced, standard } = signal\n return {\n [number]: {\n name,\n number,\n description,\n supported,\n action,\n forced,\n standard,\n },\n }\n}\n\n// Several signals might end up sharing the same number because of OS-specific\n// numbers, in which case those prevail.\nconst findSignalByNumber = function(number, signals) {\n const signal = signals.find(({ name }) => constants.signals[name] === number)\n\n if (signal !== undefined) {\n return signal\n }\n\n return signals.find(signalA => signalA.number === number)\n}\n\nexport const signalsByNumber = getSignalsByNumber()\n"],"file":"src/main.js"} \ No newline at end of file diff --git a/node_modules/human-signals/build/src/realtime.js b/node_modules/human-signals/build/src/realtime.js new file mode 100755 index 0000000..f665516 --- /dev/null +++ b/node_modules/human-signals/build/src/realtime.js @@ -0,0 +1,19 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SIGRTMAX=exports.getRealtimeSignals=void 0; +const getRealtimeSignals=function(){ +const length=SIGRTMAX-SIGRTMIN+1; +return Array.from({length},getRealtimeSignal); +};exports.getRealtimeSignals=getRealtimeSignals; + +const getRealtimeSignal=function(value,index){ +return{ +name:`SIGRT${index+1}`, +number:SIGRTMIN+index, +action:"terminate", +description:"Application-specific signal (realtime)", +standard:"posix"}; + +}; + +const SIGRTMIN=34; +const SIGRTMAX=64;exports.SIGRTMAX=SIGRTMAX; +//# sourceMappingURL=realtime.js.map \ No newline at end of file diff --git a/node_modules/human-signals/build/src/realtime.js.map b/node_modules/human-signals/build/src/realtime.js.map new file mode 100755 index 0000000..808bbd1 --- /dev/null +++ b/node_modules/human-signals/build/src/realtime.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/realtime.js"],"names":["getRealtimeSignals","length","SIGRTMAX","SIGRTMIN","Array","from","getRealtimeSignal","value","index","name","number","action","description","standard"],"mappings":";AACO,KAAMA,CAAAA,kBAAkB,CAAG,UAAW;AAC3C,KAAMC,CAAAA,MAAM,CAAGC,QAAQ,CAAGC,QAAX,CAAsB,CAArC;AACA,MAAOC,CAAAA,KAAK,CAACC,IAAN,CAAW,CAAEJ,MAAF,CAAX,CAAuBK,iBAAvB,CAAP;AACD,CAHM,C;;AAKP,KAAMA,CAAAA,iBAAiB,CAAG,SAASC,KAAT,CAAgBC,KAAhB,CAAuB;AAC/C,MAAO;AACLC,IAAI,CAAG,QAAOD,KAAK,CAAG,CAAE,EADnB;AAELE,MAAM,CAAEP,QAAQ,CAAGK,KAFd;AAGLG,MAAM,CAAE,WAHH;AAILC,WAAW,CAAE,wCAJR;AAKLC,QAAQ,CAAE,OALL,CAAP;;AAOD,CARD;;AAUA,KAAMV,CAAAA,QAAQ,CAAG,EAAjB;AACO,KAAMD,CAAAA,QAAQ,CAAG,EAAjB,C","sourcesContent":["// List of realtime signals with information about them\nexport const getRealtimeSignals = function() {\n const length = SIGRTMAX - SIGRTMIN + 1\n return Array.from({ length }, getRealtimeSignal)\n}\n\nconst getRealtimeSignal = function(value, index) {\n return {\n name: `SIGRT${index + 1}`,\n number: SIGRTMIN + index,\n action: 'terminate',\n description: 'Application-specific signal (realtime)',\n standard: 'posix',\n }\n}\n\nconst SIGRTMIN = 34\nexport const SIGRTMAX = 64\n"],"file":"src/realtime.js"} \ No newline at end of file diff --git a/node_modules/human-signals/build/src/signals.js b/node_modules/human-signals/build/src/signals.js new file mode 100755 index 0000000..ab3b387 --- /dev/null +++ b/node_modules/human-signals/build/src/signals.js @@ -0,0 +1,35 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getSignals=void 0;var _os=require("os"); + +var _core=require("./core.js"); +var _realtime=require("./realtime.js"); + + + +const getSignals=function(){ +const realtimeSignals=(0,_realtime.getRealtimeSignals)(); +const signals=[..._core.SIGNALS,...realtimeSignals].map(normalizeSignal); +return signals; +};exports.getSignals=getSignals; + + + + + + + +const normalizeSignal=function({ +name, +number:defaultNumber, +description, +action, +forced=false, +standard}) +{ +const{ +signals:{[name]:constantSignal}}= +_os.constants; +const supported=constantSignal!==undefined; +const number=supported?constantSignal:defaultNumber; +return{name,number,description,supported,action,forced,standard}; +}; +//# sourceMappingURL=signals.js.map \ No newline at end of file diff --git a/node_modules/human-signals/build/src/signals.js.map b/node_modules/human-signals/build/src/signals.js.map new file mode 100755 index 0000000..2a6b919 --- /dev/null +++ b/node_modules/human-signals/build/src/signals.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/signals.js"],"names":["getSignals","realtimeSignals","signals","SIGNALS","map","normalizeSignal","name","number","defaultNumber","description","action","forced","standard","constantSignal","constants","supported","undefined"],"mappings":"gGAAA;;AAEA;AACA;;;;AAIO,KAAMA,CAAAA,UAAU,CAAG,UAAW;AACnC,KAAMC,CAAAA,eAAe,CAAG,kCAAxB;AACA,KAAMC,CAAAA,OAAO,CAAG,CAAC,GAAGC,aAAJ,CAAa,GAAGF,eAAhB,EAAiCG,GAAjC,CAAqCC,eAArC,CAAhB;AACA,MAAOH,CAAAA,OAAP;AACD,CAJM,C;;;;;;;;AAYP,KAAMG,CAAAA,eAAe,CAAG,SAAS;AAC/BC,IAD+B;AAE/BC,MAAM,CAAEC,aAFuB;AAG/BC,WAH+B;AAI/BC,MAJ+B;AAK/BC,MAAM,CAAG,KALsB;AAM/BC,QAN+B,CAAT;AAOrB;AACD,KAAM;AACJV,OAAO,CAAE,CAAE,CAACI,IAAD,EAAQO,cAAV,CADL;AAEFC,aAFJ;AAGA,KAAMC,CAAAA,SAAS,CAAGF,cAAc,GAAKG,SAArC;AACA,KAAMT,CAAAA,MAAM,CAAGQ,SAAS,CAAGF,cAAH,CAAoBL,aAA5C;AACA,MAAO,CAAEF,IAAF,CAAQC,MAAR,CAAgBE,WAAhB,CAA6BM,SAA7B,CAAwCL,MAAxC,CAAgDC,MAAhD,CAAwDC,QAAxD,CAAP;AACD,CAdD","sourcesContent":["import { constants } from 'os'\n\nimport { SIGNALS } from './core.js'\nimport { getRealtimeSignals } from './realtime.js'\n\n// Retrieve list of know signals (including realtime) with information about\n// them\nexport const getSignals = function() {\n const realtimeSignals = getRealtimeSignals()\n const signals = [...SIGNALS, ...realtimeSignals].map(normalizeSignal)\n return signals\n}\n\n// Normalize signal:\n// - `number`: signal numbers are OS-specific. This is taken into account by\n// `os.constants.signals`. However we provide a default `number` since some\n// signals are not defined for some OS.\n// - `forced`: set default to `false`\n// - `supported`: set value\nconst normalizeSignal = function({\n name,\n number: defaultNumber,\n description,\n action,\n forced = false,\n standard,\n}) {\n const {\n signals: { [name]: constantSignal },\n } = constants\n const supported = constantSignal !== undefined\n const number = supported ? constantSignal : defaultNumber\n return { name, number, description, supported, action, forced, standard }\n}\n"],"file":"src/signals.js"} \ No newline at end of file diff --git a/node_modules/human-signals/package.json b/node_modules/human-signals/package.json new file mode 100755 index 0000000..fd1d027 --- /dev/null +++ b/node_modules/human-signals/package.json @@ -0,0 +1,64 @@ +{ + "name": "human-signals", + "version": "2.1.0", + "main": "build/src/main.js", + "files": [ + "build/src", + "!~" + ], + "scripts": { + "test": "gulp test" + }, + "husky": { + "hooks": { + "pre-push": "gulp check --full" + } + }, + "description": "Human-friendly process signals", + "keywords": [ + "signal", + "signals", + "handlers", + "error-handling", + "errors", + "interrupts", + "sigterm", + "sigint", + "irq", + "process", + "exit", + "exit-code", + "status", + "operating-system", + "es6", + "javascript", + "linux", + "macos", + "windows", + "nodejs" + ], + "license": "Apache-2.0", + "homepage": "https://git.io/JeluP", + "repository": "ehmicky/human-signals", + "bugs": { + "url": "https://github.com/ehmicky/human-signals/issues" + }, + "author": "ehmicky (https://github.com/ehmicky)", + "directories": { + "lib": "src", + "test": "test" + }, + "types": "build/src/main.d.ts", + "dependencies": {}, + "devDependencies": { + "@ehmicky/dev-tasks": "^0.31.9", + "ajv": "^6.12.0", + "ava": "^3.5.0", + "gulp": "^4.0.2", + "husky": "^4.2.3", + "test-each": "^2.0.0" + }, + "engines": { + "node": ">=10.17.0" + } +} diff --git a/node_modules/iconv-lite/Changelog.md b/node_modules/iconv-lite/Changelog.md old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/LICENSE b/node_modules/iconv-lite/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/README.md b/node_modules/iconv-lite/README.md old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/dbcs-codec.js b/node_modules/iconv-lite/encodings/dbcs-codec.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/dbcs-data.js b/node_modules/iconv-lite/encodings/dbcs-data.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/index.js b/node_modules/iconv-lite/encodings/index.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/internal.js b/node_modules/iconv-lite/encodings/internal.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/sbcs-codec.js b/node_modules/iconv-lite/encodings/sbcs-codec.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/sbcs-data-generated.js b/node_modules/iconv-lite/encodings/sbcs-data-generated.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/sbcs-data.js b/node_modules/iconv-lite/encodings/sbcs-data.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/tables/big5-added.json b/node_modules/iconv-lite/encodings/tables/big5-added.json old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/tables/cp936.json b/node_modules/iconv-lite/encodings/tables/cp936.json old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/tables/cp949.json b/node_modules/iconv-lite/encodings/tables/cp949.json old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/tables/cp950.json b/node_modules/iconv-lite/encodings/tables/cp950.json old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/tables/eucjp.json b/node_modules/iconv-lite/encodings/tables/eucjp.json old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json b/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/tables/gbk-added.json b/node_modules/iconv-lite/encodings/tables/gbk-added.json old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/tables/shiftjis.json b/node_modules/iconv-lite/encodings/tables/shiftjis.json old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/utf16.js b/node_modules/iconv-lite/encodings/utf16.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/encodings/utf7.js b/node_modules/iconv-lite/encodings/utf7.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/lib/bom-handling.js b/node_modules/iconv-lite/lib/bom-handling.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/lib/extend-node.js b/node_modules/iconv-lite/lib/extend-node.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/lib/index.d.ts b/node_modules/iconv-lite/lib/index.d.ts old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/lib/index.js b/node_modules/iconv-lite/lib/index.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/lib/streams.js b/node_modules/iconv-lite/lib/streams.js old mode 100644 new mode 100755 diff --git a/node_modules/iconv-lite/package.json b/node_modules/iconv-lite/package.json old mode 100644 new mode 100755 diff --git a/node_modules/import-local/fixtures/cli.js b/node_modules/import-local/fixtures/cli.js new file mode 100755 index 0000000..46b939f --- /dev/null +++ b/node_modules/import-local/fixtures/cli.js @@ -0,0 +1,7 @@ +#!/usr/bin/env node +'use strict'; +const importLocal = require('..'); + +if (importLocal(__filename)) { + console.log('local'); +} diff --git a/node_modules/import-local/index.js b/node_modules/import-local/index.js new file mode 100755 index 0000000..28c9c60 --- /dev/null +++ b/node_modules/import-local/index.js @@ -0,0 +1,24 @@ +'use strict'; +const path = require('path'); +const {fileURLToPath} = require('url'); +const resolveCwd = require('resolve-cwd'); +const pkgDir = require('pkg-dir'); + +module.exports = filename => { + const normalizedFilename = filename.startsWith('file://') ? fileURLToPath(filename) : filename; + const globalDir = pkgDir.sync(path.dirname(normalizedFilename)); + const relativePath = path.relative(globalDir, normalizedFilename); + const pkg = require(path.join(globalDir, 'package.json')); + const localFile = resolveCwd.silent(path.join(pkg.name, relativePath)); + const localNodeModules = path.join(process.cwd(), 'node_modules'); + + const filenameInLocalNodeModules = !path.relative(localNodeModules, normalizedFilename).startsWith('..') && + // On Windows, if `localNodeModules` and `normalizedFilename` are on different partitions, `path.relative()` returns the value of `normalizedFilename`, resulting in `filenameInLocalNodeModules` incorrectly becoming `true`. + path.parse(localNodeModules).root === path.parse(normalizedFilename).root; + + // Use `path.relative()` to detect local package installation, + // because __filename's case is inconsistent on Windows + // Can use `===` when targeting Node.js 8 + // See https://github.com/nodejs/node/issues/6624 + return !filenameInLocalNodeModules && localFile && path.relative(localFile, normalizedFilename) !== '' && require(localFile); +}; diff --git a/node_modules/import-local/license b/node_modules/import-local/license new file mode 100755 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/import-local/license @@ -0,0 +1,9 @@ +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/node_modules/import-local/package.json b/node_modules/import-local/package.json new file mode 100755 index 0000000..0de45f0 --- /dev/null +++ b/node_modules/import-local/package.json @@ -0,0 +1,52 @@ +{ + "name": "import-local", + "version": "3.1.0", + "description": "Let a globally installed package use a locally installed version of itself if available", + "license": "MIT", + "repository": "sindresorhus/import-local", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js", + "fixtures/cli.js" + ], + "keywords": [ + "import", + "local", + "require", + "resolve", + "global", + "version", + "prefer", + "cli" + ], + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "devDependencies": { + "ava": "2.1.0", + "cpy": "^7.0.1", + "del": "^4.1.1", + "execa": "^2.0.1", + "xo": "^0.24.0" + }, + "xo": { + "ignores": [ + "fixtures" + ] + } +} diff --git a/node_modules/import-local/readme.md b/node_modules/import-local/readme.md new file mode 100755 index 0000000..cc5244f --- /dev/null +++ b/node_modules/import-local/readme.md @@ -0,0 +1,37 @@ +# import-local + +> Let a globally installed package use a locally installed version of itself if available + +Useful for CLI tools that want to defer to the user's locally installed version when available, but still work if it's not installed locally. For example, [AVA](https://avajs.dev) and [XO](https://github.com/xojs/xo) uses this method. + +## Install + +```sh +npm install import-local +``` + +## Usage + +```js +import importLocal from 'import-local'; + +if (importLocal(import.meta.url)) { + console.log('Using local version of this package'); +} else { + // Code for both global and local version here… +} +``` + +You can also pass in `__filename` when used in a CommonJS context. + +--- + +
+ + 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/node_modules/imurmurhash/README.md b/node_modules/imurmurhash/README.md new file mode 100755 index 0000000..f35b20a --- /dev/null +++ b/node_modules/imurmurhash/README.md @@ -0,0 +1,122 @@ +iMurmurHash.js +============== + +An incremental implementation of the MurmurHash3 (32-bit) hashing algorithm for JavaScript based on [Gary Court's implementation](https://github.com/garycourt/murmurhash-js) with [kazuyukitanimura's modifications](https://github.com/kazuyukitanimura/murmurhash-js). + +This version works significantly faster than the non-incremental version if you need to hash many small strings into a single hash, since string concatenation (to build the single string to pass the non-incremental version) is fairly costly. In one case tested, using the incremental version was about 50% faster than concatenating 5-10 strings and then hashing. + +Installation +------------ + +To use iMurmurHash in the browser, [download the latest version](https://raw.github.com/jensyt/imurmurhash-js/master/imurmurhash.min.js) and include it as a script on your site. + +```html + + +``` + +--- + +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/node_modules/imurmurhash/imurmurhash.js b/node_modules/imurmurhash/imurmurhash.js new file mode 100755 index 0000000..e63146a --- /dev/null +++ b/node_modules/imurmurhash/imurmurhash.js @@ -0,0 +1,138 @@ +/** + * @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/node_modules/imurmurhash/imurmurhash.min.js b/node_modules/imurmurhash/imurmurhash.min.js new file mode 100755 index 0000000..dc0ee88 --- /dev/null +++ b/node_modules/imurmurhash/imurmurhash.min.js @@ -0,0 +1,12 @@ +/** + * @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/node_modules/imurmurhash/package.json b/node_modules/imurmurhash/package.json new file mode 100755 index 0000000..8a93edb --- /dev/null +++ b/node_modules/imurmurhash/package.json @@ -0,0 +1,40 @@ +{ + "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/node_modules/inflight/LICENSE b/node_modules/inflight/LICENSE new file mode 100755 index 0000000..05eeeb8 --- /dev/null +++ b/node_modules/inflight/LICENSE @@ -0,0 +1,15 @@ +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/node_modules/inflight/README.md b/node_modules/inflight/README.md new file mode 100755 index 0000000..6dc8929 --- /dev/null +++ b/node_modules/inflight/README.md @@ -0,0 +1,37 @@ +# 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/node_modules/inflight/inflight.js b/node_modules/inflight/inflight.js new file mode 100755 index 0000000..48202b3 --- /dev/null +++ b/node_modules/inflight/inflight.js @@ -0,0 +1,54 @@ +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/node_modules/inflight/package.json b/node_modules/inflight/package.json new file mode 100755 index 0000000..6084d35 --- /dev/null +++ b/node_modules/inflight/package.json @@ -0,0 +1,29 @@ +{ + "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/node_modules/inherits/LICENSE b/node_modules/inherits/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/inherits/README.md b/node_modules/inherits/README.md old mode 100644 new mode 100755 diff --git a/node_modules/inherits/inherits.js b/node_modules/inherits/inherits.js old mode 100644 new mode 100755 diff --git a/node_modules/inherits/inherits_browser.js b/node_modules/inherits/inherits_browser.js old mode 100644 new mode 100755 diff --git a/node_modules/inherits/package.json b/node_modules/inherits/package.json old mode 100644 new mode 100755 diff --git a/node_modules/ipaddr.js/LICENSE b/node_modules/ipaddr.js/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/ipaddr.js/README.md b/node_modules/ipaddr.js/README.md old mode 100644 new mode 100755 diff --git a/node_modules/ipaddr.js/ipaddr.min.js b/node_modules/ipaddr.js/ipaddr.min.js old mode 100644 new mode 100755 diff --git a/node_modules/ipaddr.js/lib/ipaddr.js b/node_modules/ipaddr.js/lib/ipaddr.js old mode 100644 new mode 100755 diff --git a/node_modules/ipaddr.js/lib/ipaddr.js.d.ts b/node_modules/ipaddr.js/lib/ipaddr.js.d.ts old mode 100644 new mode 100755 diff --git a/node_modules/ipaddr.js/package.json b/node_modules/ipaddr.js/package.json old mode 100644 new mode 100755 diff --git a/node_modules/is-arrayish/.editorconfig b/node_modules/is-arrayish/.editorconfig new file mode 100755 index 0000000..4c017f8 --- /dev/null +++ b/node_modules/is-arrayish/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +indent_style = tab +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.coffee] +indent_style = space + +[{package.json,*.yml}] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false diff --git a/node_modules/is-arrayish/.istanbul.yml b/node_modules/is-arrayish/.istanbul.yml new file mode 100755 index 0000000..19fbec3 --- /dev/null +++ b/node_modules/is-arrayish/.istanbul.yml @@ -0,0 +1,4 @@ +instrumentation: + excludes: + - test.js + - test/**/* diff --git a/node_modules/is-arrayish/.npmignore b/node_modules/is-arrayish/.npmignore new file mode 100755 index 0000000..8d5eacb --- /dev/null +++ b/node_modules/is-arrayish/.npmignore @@ -0,0 +1,5 @@ +/coverage/ +/test.js +/test/ +*.sw[a-p] +/node_modules/ diff --git a/node_modules/is-arrayish/.travis.yml b/node_modules/is-arrayish/.travis.yml new file mode 100755 index 0000000..5a04243 --- /dev/null +++ b/node_modules/is-arrayish/.travis.yml @@ -0,0 +1,17 @@ +language: node_js + +script: + - node_modules/.bin/istanbul cover node_modules/.bin/_mocha -- --compilers coffee:coffee-script/register + - cat coverage/lcov.info | node_modules/.bin/coveralls +node_js: + - "0.10" + - "0.11" + - "0.12" + - "iojs" +os: + - linux + - osx + +notifications: + slack: + secure: oOt8QGzdrPDsTMcyahtIq5Q+0U1iwfgJgFCxBLsomQ0bpIMn+y5m4viJydA2UinHPGc944HS3LMZS9iKQyv+DjTgbhUyNXqeVjtxCwRe37f5rKQlXVvdfmjHk2kln4H8DcK3r5Qd/+2hd9BeMsp2GImTrkRSud1CZQlhhe5IgZOboSoWpGVMMy1iazWT06tAtiB2LRVhmsdUaFZDWAhGZ+UAvCPf+mnBOAylIj+U0GDrofhfTi25RK0gddG2f/p2M1HCu49O6wECGWkt2hVei233DkNJyLLLJVcvmhf+aXkV5TjMyaoxh/HdcV4DrA7KvYuWmWWKsINa9hlwAsdd/FYmJ6PjRkKWas2JoQ1C+qOzDxyQvn3CaUZFKD99pdsq0rBBZujqXQKZZ/hWb/CE74BI6fKmqQkiEPaD/7uADj04FEg6HVBZaMCyauOaK5b3VC97twbALZ1qVxYV6mU+zSEvnUbpnjjvRO0fSl9ZHA+rzkW73kX3GmHY0wAozEZbSy7QLuZlQ2QtHmBLr+APaGMdL1sFF9qFfzqKy0WDbSE0WS6hpAEJpTsjYmeBrnI8UmK3m++iEgyQPvZoH9LhUT+ek7XIfHZMe04BmC6wuO24/RfpmR6bQK9VMarFCYlBiWxg/z30vkP0KTpUi3o/cqFm7/Noxc0i2LVqM3E0Sy4= diff --git a/node_modules/is-arrayish/LICENSE b/node_modules/is-arrayish/LICENSE new file mode 100755 index 0000000..0a5f461 --- /dev/null +++ b/node_modules/is-arrayish/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 JD Ballard + +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/node_modules/is-arrayish/README.md b/node_modules/is-arrayish/README.md new file mode 100755 index 0000000..7d36072 --- /dev/null +++ b/node_modules/is-arrayish/README.md @@ -0,0 +1,16 @@ +# node-is-arrayish [![Travis-CI.org Build Status](https://img.shields.io/travis/Qix-/node-is-arrayish.svg?style=flat-square)](https://travis-ci.org/Qix-/node-is-arrayish) [![Coveralls.io Coverage Rating](https://img.shields.io/coveralls/Qix-/node-is-arrayish.svg?style=flat-square)](https://coveralls.io/r/Qix-/node-is-arrayish) +> Determines if an object can be used like an Array + +## Example +```javascript +var isArrayish = require('is-arrayish'); + +isArrayish([]); // true +isArrayish({__proto__: []}); // true +isArrayish({}); // false +isArrayish({length:10}); // false +``` + +## License +Licensed under the [MIT License](http://opensource.org/licenses/MIT). +You can find a copy of it in [LICENSE](LICENSE). diff --git a/node_modules/is-arrayish/index.js b/node_modules/is-arrayish/index.js new file mode 100755 index 0000000..5b97186 --- /dev/null +++ b/node_modules/is-arrayish/index.js @@ -0,0 +1,10 @@ +'use strict'; + +module.exports = function isArrayish(obj) { + if (!obj) { + return false; + } + + return obj instanceof Array || Array.isArray(obj) || + (obj.length >= 0 && obj.splice instanceof Function); +}; diff --git a/node_modules/is-arrayish/package.json b/node_modules/is-arrayish/package.json new file mode 100755 index 0000000..8b2d1c3 --- /dev/null +++ b/node_modules/is-arrayish/package.json @@ -0,0 +1,34 @@ +{ + "name": "is-arrayish", + "description": "Determines if an object can be used as an array", + "version": "0.2.1", + "author": "Qix (http://github.com/qix-)", + "keywords": [ + "is", + "array", + "duck", + "type", + "arrayish", + "similar", + "proto", + "prototype", + "type" + ], + "license": "MIT", + "scripts": { + "pretest": "xo", + "test": "mocha --compilers coffee:coffee-script/register" + }, + "repository": { + "type": "git", + "url": "https://github.com/qix-/node-is-arrayish.git" + }, + "devDependencies": { + "coffee-script": "^1.9.3", + "coveralls": "^2.11.2", + "istanbul": "^0.3.17", + "mocha": "^2.2.5", + "should": "^7.0.1", + "xo": "^0.6.1" + } +} diff --git a/node_modules/is-core-module/.eslintrc b/node_modules/is-core-module/.eslintrc new file mode 100755 index 0000000..f2e0726 --- /dev/null +++ b/node_modules/is-core-module/.eslintrc @@ -0,0 +1,18 @@ +{ + "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/node_modules/is-core-module/.nycrc b/node_modules/is-core-module/.nycrc new file mode 100755 index 0000000..bdd626c --- /dev/null +++ b/node_modules/is-core-module/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/is-core-module/CHANGELOG.md b/node_modules/is-core-module/CHANGELOG.md new file mode 100755 index 0000000..a2ff254 --- /dev/null +++ b/node_modules/is-core-module/CHANGELOG.md @@ -0,0 +1,151 @@ +# 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.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/node_modules/is-core-module/LICENSE b/node_modules/is-core-module/LICENSE new file mode 100755 index 0000000..2e50287 --- /dev/null +++ b/node_modules/is-core-module/LICENSE @@ -0,0 +1,20 @@ +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/node_modules/is-core-module/README.md b/node_modules/is-core-module/README.md new file mode 100755 index 0000000..062d906 --- /dev/null +++ b/node_modules/is-core-module/README.md @@ -0,0 +1,40 @@ +# 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/node_modules/is-core-module/core.json b/node_modules/is-core-module/core.json new file mode 100755 index 0000000..d73579c --- /dev/null +++ b/node_modules/is-core-module/core.json @@ -0,0 +1,155 @@ +{ + "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"], + "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", + "worker_threads": ">= 11.7", + "node:worker_threads": [">= 14.18 && < 15", ">= 16"], + "zlib": ">= 0.5", + "node:zlib": [">= 14.18 && < 15", ">= 16"] +} diff --git a/node_modules/is-core-module/index.js b/node_modules/is-core-module/index.js new file mode 100755 index 0000000..f9637e0 --- /dev/null +++ b/node_modules/is-core-module/index.js @@ -0,0 +1,69 @@ +'use strict'; + +var has = require('has'); + +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 has(data, x) && versionIncluded(nodeVersion, data[x]); +}; diff --git a/node_modules/is-core-module/package.json b/node_modules/is-core-module/package.json new file mode 100755 index 0000000..5c1a871 --- /dev/null +++ b/node_modules/is-core-module/package.json @@ -0,0 +1,72 @@ +{ + "name": "is-core-module", + "version": "2.11.0", + "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": { + "has": "^1.0.3" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.0.0", + "aud": "^2.0.1", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "mock-property": "^1.0.0", + "npmignore": "^0.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "semver": "^6.3.0", + "tape": "^5.6.1" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github" + ] + } +} diff --git a/node_modules/is-core-module/test/index.js b/node_modules/is-core-module/test/index.js new file mode 100755 index 0000000..912808b --- /dev/null +++ b/node_modules/is-core-module/test/index.js @@ -0,0 +1,133 @@ +'use strict'; + +var test = require('tape'); +var keys = require('object-keys'); +var semver = require('semver'); +var mockProperty = require('mock-property'); + +var isCore = require('../'); +var data = require('../core.json'); + +var supportsNodePrefix = semver.satisfies(process.versions.node, '^14.18 || >= 16', { includePrerelease: true }); + +test('core modules', function (t) { + t.test('isCore()', function (st) { + st.ok(isCore('fs')); + st.ok(isCore('net')); + st.ok(isCore('http')); + + st.ok(!isCore('seq')); + st.ok(!isCore('../')); + + st.ok(!isCore('toString')); + + st.end(); + }); + + t.test('core list', function (st) { + var cores = keys(data); + st.plan(cores.length); + + for (var i = 0; i < cores.length; ++i) { + var mod = cores[i]; + var requireFunc = function () { require(mod); }; // eslint-disable-line no-loop-func + if (isCore(mod)) { + st.doesNotThrow(requireFunc, mod + ' supported; requiring does not throw'); + } else { + st['throws'](requireFunc, mod + ' not supported; requiring throws'); + } + } + + st.end(); + }); + + t.test('core via repl module', { skip: !data.repl }, function (st) { + var libs = require('repl')._builtinLibs; // eslint-disable-line no-underscore-dangle + if (!libs) { + st.skip('repl._builtinLibs does not exist'); + } else { + for (var i = 0; i < libs.length; ++i) { + var mod = libs[i]; + st.ok(data[mod], mod + ' is a core module'); + st.doesNotThrow( + function () { require(mod); }, // eslint-disable-line no-loop-func + 'requiring ' + mod + ' does not throw' + ); + if (mod.slice(0, 5) !== 'node:') { + if (supportsNodePrefix) { + st.doesNotThrow( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' does not throw' + ); + } else { + st['throws']( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' throws' + ); + } + } + } + } + st.end(); + }); + + t.test('core via builtinModules list', { skip: !data.module }, function (st) { + var libs = require('module').builtinModules; + if (!libs) { + st.skip('module.builtinModules does not exist'); + } else { + var excludeList = [ + '_debug_agent', + 'v8/tools/tickprocessor-driver', + 'v8/tools/SourceMap', + 'v8/tools/tickprocessor', + 'v8/tools/profile' + ]; + // see https://github.com/nodejs/node/issues/42785 + if (semver.satisfies(process.version, '>= 18')) { + libs = libs.concat('node:test'); + } + for (var i = 0; i < libs.length; ++i) { + var mod = libs[i]; + if (excludeList.indexOf(mod) === -1) { + st.ok(data[mod], mod + ' is a core module'); + st.doesNotThrow( + function () { require(mod); }, // eslint-disable-line no-loop-func + 'requiring ' + mod + ' does not throw' + ); + if (mod.slice(0, 5) !== 'node:') { + if (supportsNodePrefix) { + st.doesNotThrow( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' does not throw' + ); + } else { + st['throws']( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' throws' + ); + } + } + } + } + } + st.end(); + }); + + t.test('Object.prototype pollution', function (st) { + var nonKey = 'not a core module'; + st.teardown(mockProperty(Object.prototype, 'fs', { value: false })); + st.teardown(mockProperty(Object.prototype, 'path', { value: '>= 999999999' })); + st.teardown(mockProperty(Object.prototype, 'http', { value: data.http })); + st.teardown(mockProperty(Object.prototype, nonKey, { value: true })); + + st.equal(isCore('fs'), true, 'fs is a core module even if Object.prototype lies'); + st.equal(isCore('path'), true, 'path is a core module even if Object.prototype lies'); + st.equal(isCore('http'), true, 'path is a core module even if Object.prototype matches data'); + st.equal(isCore(nonKey), false, '"' + nonKey + '" is not a core module even if Object.prototype lies'); + + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/is-fullwidth-code-point/index.d.ts b/node_modules/is-fullwidth-code-point/index.d.ts new file mode 100755 index 0000000..729d202 --- /dev/null +++ b/node_modules/is-fullwidth-code-point/index.d.ts @@ -0,0 +1,17 @@ +/** +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/node_modules/is-fullwidth-code-point/index.js b/node_modules/is-fullwidth-code-point/index.js new file mode 100755 index 0000000..671f97f --- /dev/null +++ b/node_modules/is-fullwidth-code-point/index.js @@ -0,0 +1,50 @@ +/* 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/node_modules/is-fullwidth-code-point/license b/node_modules/is-fullwidth-code-point/license new file mode 100755 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/is-fullwidth-code-point/license @@ -0,0 +1,9 @@ +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/node_modules/is-fullwidth-code-point/package.json b/node_modules/is-fullwidth-code-point/package.json new file mode 100755 index 0000000..2137e88 --- /dev/null +++ b/node_modules/is-fullwidth-code-point/package.json @@ -0,0 +1,42 @@ +{ + "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/node_modules/is-fullwidth-code-point/readme.md b/node_modules/is-fullwidth-code-point/readme.md new file mode 100755 index 0000000..4236bba --- /dev/null +++ b/node_modules/is-fullwidth-code-point/readme.md @@ -0,0 +1,39 @@ +# 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/node_modules/is-generator-fn/index.d.ts b/node_modules/is-generator-fn/index.d.ts new file mode 100755 index 0000000..7eabf62 --- /dev/null +++ b/node_modules/is-generator-fn/index.d.ts @@ -0,0 +1,24 @@ +declare const isGeneratorFn: { + /** + Check if something is a generator function. + + @example + ``` + import isGeneratorFn = require('is-generator-fn'); + + isGeneratorFn(function * () {}); + //=> true + + isGeneratorFn(function () {}); + //=> false + ``` + */ + (value: unknown): value is GeneratorFunction; + + // TODO: Remove this for the next major release, refactor the whole definition to: + // declare function isGeneratorFn(value: unknown): value is GeneratorFunction; + // export = isGeneratorFn; + default: typeof isGeneratorFn; +}; + +export = isGeneratorFn; diff --git a/node_modules/is-generator-fn/index.js b/node_modules/is-generator-fn/index.js new file mode 100755 index 0000000..d50f6cf --- /dev/null +++ b/node_modules/is-generator-fn/index.js @@ -0,0 +1,14 @@ +'use strict'; +const {toString} = Object.prototype; + +module.exports = value => { + if (typeof value !== 'function') { + return false; + } + + return (value.constructor && value.constructor.name === 'GeneratorFunction') || + toString.call(value) === '[object GeneratorFunction]'; +}; + +// TODO: Remove this for the next major release +module.exports.default = module.exports; diff --git a/node_modules/is-generator-fn/license b/node_modules/is-generator-fn/license new file mode 100755 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/is-generator-fn/license @@ -0,0 +1,9 @@ +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/node_modules/is-generator-fn/package.json b/node_modules/is-generator-fn/package.json new file mode 100755 index 0000000..65e319e --- /dev/null +++ b/node_modules/is-generator-fn/package.json @@ -0,0 +1,38 @@ +{ + "name": "is-generator-fn", + "version": "2.1.0", + "description": "Check if something is a generator function", + "license": "MIT", + "repository": "sindresorhus/is-generator-fn", + "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": [ + "generator", + "function", + "func", + "fn", + "is", + "check", + "detect", + "yield", + "type" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/is-generator-fn/readme.md b/node_modules/is-generator-fn/readme.md new file mode 100755 index 0000000..654c2af --- /dev/null +++ b/node_modules/is-generator-fn/readme.md @@ -0,0 +1,33 @@ +# is-generator-fn [![Build Status](https://travis-ci.org/sindresorhus/is-generator-fn.svg?branch=master)](https://travis-ci.org/sindresorhus/is-generator-fn) + +> Check if something is a [generator function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*) + + +## Install + +``` +$ npm install is-generator-fn +``` + + +## Usage + +```js +const isGeneratorFn = require('is-generator-fn'); + +isGeneratorFn(function * () {}); +//=> true + +isGeneratorFn(function () {}); +//=> false +``` + + +## Related + +- [is](https://github.com/sindresorhus/is) - Type check values + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/is-number/LICENSE b/node_modules/is-number/LICENSE new file mode 100755 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/is-number/LICENSE @@ -0,0 +1,21 @@ +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/node_modules/is-number/README.md b/node_modules/is-number/README.md new file mode 100755 index 0000000..eb8149e --- /dev/null +++ b/node_modules/is-number/README.md @@ -0,0 +1,187 @@ +# is-number [![NPM version](https://img.shields.io/npm/v/is-number.svg?style=flat)](https://www.npmjs.com/package/is-number) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![NPM total downloads](https://img.shields.io/npm/dt/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-number.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-number) + +> Returns true if the value is a finite number. + +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-number +``` + +## Why is this needed? + +In JavaScript, it's not always as straightforward as it should be to reliably check if a value is a number. It's common for devs to use `+`, `-`, or `Number()` to cast a string value to a number (for example, when values are returned from user input, regex matches, parsers, etc). But there are many non-intuitive edge cases that yield unexpected results: + +```js +console.log(+[]); //=> 0 +console.log(+''); //=> 0 +console.log(+' '); //=> 0 +console.log(typeof NaN); //=> 'number' +``` + +This library offers a performant way to smooth out edge cases like these. + +## Usage + +```js +const isNumber = require('is-number'); +``` + +See the [tests](./test.js) for more examples. + +### true + +```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 + +Everything else is false, as you would expect: + +```js +isNumber(Infinity); // false +isNumber(NaN); // false +isNumber(null); // false +isNumber(undefined); // false +isNumber(''); // false +isNumber(' '); // false +isNumber('foo'); // false +isNumber([1]); // false +isNumber([]); // false +isNumber(function () {}); // false +isNumber({}); // false +``` + +## Release history + +### 7.0.0 + +* Refactor. Now uses `.isFinite` if it exists. +* Performance is about the same as v6.0 when the value is a string or number. But it's now 3x-4x faster when the value is not a string or number. + +### 6.0.0 + +* Optimizations, thanks to @benaadams. + +### 5.0.0 + +**Breaking changes** + +* removed support for `instanceof Number` and `instanceof String` + +## Benchmarks + +As with all benchmarks, take these with a grain of salt. See the [benchmarks](./benchmark/index.js) for more detail. + +``` +# all +v7.0 x 413,222 ops/sec ±2.02% (86 runs sampled) +v6.0 x 111,061 ops/sec ±1.29% (85 runs sampled) +parseFloat x 317,596 ops/sec ±1.36% (86 runs sampled) +fastest is 'v7.0' + +# string +v7.0 x 3,054,496 ops/sec ±1.05% (89 runs sampled) +v6.0 x 2,957,781 ops/sec ±0.98% (88 runs sampled) +parseFloat x 3,071,060 ops/sec ±1.13% (88 runs sampled) +fastest is 'parseFloat,v7.0' + +# number +v7.0 x 3,146,895 ops/sec ±0.89% (89 runs sampled) +v6.0 x 3,214,038 ops/sec ±1.07% (89 runs sampled) +parseFloat x 3,077,588 ops/sec ±1.07% (87 runs sampled) +fastest is 'v6.0' +``` + +## 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-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.") +* [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. ") +* [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** | +| --- | --- | +| 49 | [jonschlinkert](https://github.com/jonschlinkert) | +| 5 | [charlike-old](https://github.com/charlike-old) | +| 1 | [benaadams](https://github.com/benaadams) | +| 1 | [realityking](https://github.com/realityking) | + +### Author + +**Jon Schlinkert** + +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](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 June 15, 2018._ \ No newline at end of file diff --git a/node_modules/is-number/index.js b/node_modules/is-number/index.js new file mode 100755 index 0000000..27f19b7 --- /dev/null +++ b/node_modules/is-number/index.js @@ -0,0 +1,18 @@ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +module.exports = function(num) { + if (typeof num === 'number') { + return num - num === 0; + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + } + return false; +}; diff --git a/node_modules/is-number/package.json b/node_modules/is-number/package.json new file mode 100755 index 0000000..3715072 --- /dev/null +++ b/node_modules/is-number/package.json @@ -0,0 +1,82 @@ +{ + "name": "is-number", + "description": "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.", + "version": "7.0.0", + "homepage": "https://github.com/jonschlinkert/is-number", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Olsten Larck (https://i.am.charlike.online)", + "Rouven Weßling (www.rouvenwessling.de)" + ], + "repository": "jonschlinkert/is-number", + "bugs": { + "url": "https://github.com/jonschlinkert/is-number/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.12.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "ansi": "^0.3.1", + "benchmark": "^2.1.4", + "gulp-format-md": "^1.0.0", + "mocha": "^3.5.3" + }, + "keywords": [ + "cast", + "check", + "coerce", + "coercion", + "finite", + "integer", + "is", + "isnan", + "is-nan", + "is-num", + "is-number", + "isnumber", + "isfinite", + "istype", + "kind", + "math", + "nan", + "num", + "number", + "numeric", + "parseFloat", + "parseInt", + "test", + "type", + "typeof", + "value" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "related": { + "list": [ + "is-plain-object", + "is-primitive", + "isobject", + "kind-of" + ] + }, + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/is-potential-custom-element-name/LICENSE-MIT.txt b/node_modules/is-potential-custom-element-name/LICENSE-MIT.txt old mode 100644 new mode 100755 diff --git a/node_modules/is-potential-custom-element-name/README.md b/node_modules/is-potential-custom-element-name/README.md old mode 100644 new mode 100755 diff --git a/node_modules/is-potential-custom-element-name/package.json b/node_modules/is-potential-custom-element-name/package.json old mode 100644 new mode 100755 diff --git a/node_modules/is-stream/index.d.ts b/node_modules/is-stream/index.d.ts new file mode 100755 index 0000000..eee2e83 --- /dev/null +++ b/node_modules/is-stream/index.d.ts @@ -0,0 +1,79 @@ +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/node_modules/is-stream/index.js b/node_modules/is-stream/index.js new file mode 100755 index 0000000..2e43434 --- /dev/null +++ b/node_modules/is-stream/index.js @@ -0,0 +1,28 @@ +'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/node_modules/is-stream/license b/node_modules/is-stream/license new file mode 100755 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/is-stream/license @@ -0,0 +1,9 @@ +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/node_modules/is-stream/package.json b/node_modules/is-stream/package.json new file mode 100755 index 0000000..c3b5673 --- /dev/null +++ b/node_modules/is-stream/package.json @@ -0,0 +1,42 @@ +{ + "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/node_modules/is-stream/readme.md b/node_modules/is-stream/readme.md new file mode 100755 index 0000000..19308e7 --- /dev/null +++ b/node_modules/is-stream/readme.md @@ -0,0 +1,60 @@ +# 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/node_modules/isexe/.npmignore b/node_modules/isexe/.npmignore new file mode 100755 index 0000000..c1cb757 --- /dev/null +++ b/node_modules/isexe/.npmignore @@ -0,0 +1,2 @@ +.nyc_output/ +coverage/ diff --git a/node_modules/isexe/LICENSE b/node_modules/isexe/LICENSE new file mode 100755 index 0000000..19129e3 --- /dev/null +++ b/node_modules/isexe/LICENSE @@ -0,0 +1,15 @@ +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/node_modules/isexe/README.md b/node_modules/isexe/README.md new file mode 100755 index 0000000..35769e8 --- /dev/null +++ b/node_modules/isexe/README.md @@ -0,0 +1,51 @@ +# 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/node_modules/isexe/index.js b/node_modules/isexe/index.js new file mode 100755 index 0000000..553fb32 --- /dev/null +++ b/node_modules/isexe/index.js @@ -0,0 +1,57 @@ +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/node_modules/isexe/mode.js b/node_modules/isexe/mode.js new file mode 100755 index 0000000..1995ea4 --- /dev/null +++ b/node_modules/isexe/mode.js @@ -0,0 +1,41 @@ +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/node_modules/isexe/package.json b/node_modules/isexe/package.json new file mode 100755 index 0000000..e452689 --- /dev/null +++ b/node_modules/isexe/package.json @@ -0,0 +1,31 @@ +{ + "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/node_modules/isexe/test/basic.js b/node_modules/isexe/test/basic.js new file mode 100755 index 0000000..d926df6 --- /dev/null +++ b/node_modules/isexe/test/basic.js @@ -0,0 +1,221 @@ +var t = require('tap') +var fs = require('fs') +var path = require('path') +var fixture = path.resolve(__dirname, 'fixtures') +var meow = fixture + '/meow.cat' +var mine = fixture + '/mine.cat' +var ours = fixture + '/ours.cat' +var fail = fixture + '/fail.false' +var noent = fixture + '/enoent.exe' +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') + +var isWindows = process.platform === 'win32' +var hasAccess = typeof fs.access === 'function' +var winSkip = isWindows && 'windows' +var accessSkip = !hasAccess && 'no fs.access function' +var hasPromise = typeof Promise === 'function' +var promiseSkip = !hasPromise && 'no global Promise' + +function reset () { + delete require.cache[require.resolve('../')] + return require('../') +} + +t.test('setup fixtures', function (t) { + rimraf.sync(fixture) + mkdirp.sync(fixture) + fs.writeFileSync(meow, '#!/usr/bin/env cat\nmeow\n') + fs.chmodSync(meow, parseInt('0755', 8)) + fs.writeFileSync(fail, '#!/usr/bin/env false\n') + fs.chmodSync(fail, parseInt('0644', 8)) + fs.writeFileSync(mine, '#!/usr/bin/env cat\nmine\n') + fs.chmodSync(mine, parseInt('0744', 8)) + fs.writeFileSync(ours, '#!/usr/bin/env cat\nours\n') + fs.chmodSync(ours, parseInt('0754', 8)) + t.end() +}) + +t.test('promise', { skip: promiseSkip }, function (t) { + var isexe = reset() + t.test('meow async', function (t) { + isexe(meow).then(function (is) { + t.ok(is) + t.end() + }) + }) + t.test('fail async', function (t) { + isexe(fail).then(function (is) { + t.notOk(is) + t.end() + }) + }) + t.test('noent async', function (t) { + isexe(noent).catch(function (er) { + t.ok(er) + t.end() + }) + }) + t.test('noent ignore async', function (t) { + isexe(noent, { ignoreErrors: true }).then(function (is) { + t.notOk(is) + t.end() + }) + }) + t.end() +}) + +t.test('no promise', function (t) { + global.Promise = null + var isexe = reset() + t.throws('try to meow a promise', function () { + isexe(meow) + }) + t.end() +}) + +t.test('access', { skip: accessSkip || winSkip }, function (t) { + runTest(t) +}) + +t.test('mode', { skip: winSkip }, function (t) { + delete fs.access + delete fs.accessSync + var isexe = reset() + t.ok(isexe.sync(ours, { uid: 0, gid: 0 })) + t.ok(isexe.sync(mine, { uid: 0, gid: 0 })) + runTest(t) +}) + +t.test('windows', function (t) { + global.TESTING_WINDOWS = true + var pathExt = '.EXE;.CAT;.CMD;.COM' + t.test('pathExt option', function (t) { + runTest(t, { pathExt: '.EXE;.CAT;.CMD;.COM' }) + }) + t.test('pathExt env', function (t) { + process.env.PATHEXT = pathExt + runTest(t) + }) + t.test('no pathExt', function (t) { + // with a pathExt of '', any filename is fine. + // so the "fail" one would still pass. + runTest(t, { pathExt: '', skipFail: true }) + }) + t.test('pathext with empty entry', function (t) { + // with a pathExt of '', any filename is fine. + // so the "fail" one would still pass. + runTest(t, { pathExt: ';' + pathExt, skipFail: true }) + }) + t.end() +}) + +t.test('cleanup', function (t) { + rimraf.sync(fixture) + t.end() +}) + +function runTest (t, options) { + var isexe = reset() + + var optionsIgnore = Object.create(options || {}) + optionsIgnore.ignoreErrors = true + + if (!options || !options.skipFail) { + t.notOk(isexe.sync(fail, options)) + } + t.notOk(isexe.sync(noent, optionsIgnore)) + if (!options) { + t.ok(isexe.sync(meow)) + } else { + t.ok(isexe.sync(meow, options)) + } + + t.ok(isexe.sync(mine, options)) + t.ok(isexe.sync(ours, options)) + t.throws(function () { + isexe.sync(noent, options) + }) + + t.test('meow async', function (t) { + if (!options) { + isexe(meow, function (er, is) { + if (er) { + throw er + } + t.ok(is) + t.end() + }) + } else { + isexe(meow, options, function (er, is) { + if (er) { + throw er + } + t.ok(is) + t.end() + }) + } + }) + + t.test('mine async', function (t) { + isexe(mine, options, function (er, is) { + if (er) { + throw er + } + t.ok(is) + t.end() + }) + }) + + t.test('ours async', function (t) { + isexe(ours, options, function (er, is) { + if (er) { + throw er + } + t.ok(is) + t.end() + }) + }) + + if (!options || !options.skipFail) { + t.test('fail async', function (t) { + isexe(fail, options, function (er, is) { + if (er) { + throw er + } + t.notOk(is) + t.end() + }) + }) + } + + t.test('noent async', function (t) { + isexe(noent, options, function (er, is) { + t.ok(er) + t.notOk(is) + t.end() + }) + }) + + t.test('noent ignore async', function (t) { + isexe(noent, optionsIgnore, function (er, is) { + if (er) { + throw er + } + t.notOk(is) + t.end() + }) + }) + + t.test('directory is not executable', function (t) { + isexe(__dirname, options, function (er, is) { + if (er) { + throw er + } + t.notOk(is) + t.end() + }) + }) + + t.end() +} diff --git a/node_modules/isexe/windows.js b/node_modules/isexe/windows.js new file mode 100755 index 0000000..3499673 --- /dev/null +++ b/node_modules/isexe/windows.js @@ -0,0 +1,42 @@ +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/node_modules/istanbul-lib-coverage/CHANGELOG.md b/node_modules/istanbul-lib-coverage/CHANGELOG.md new file mode 100755 index 0000000..172546b --- /dev/null +++ b/node_modules/istanbul-lib-coverage/CHANGELOG.md @@ -0,0 +1,193 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [3.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@3.0.0-alpha.2...istanbul-lib-coverage@3.0.0) (2019-12-20) + +**Note:** Version bump only for package istanbul-lib-coverage + + + + + +# [3.0.0-alpha.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@3.0.0-alpha.1...istanbul-lib-coverage@3.0.0-alpha.2) (2019-12-07) + +**Note:** Version bump only for package istanbul-lib-coverage + + + + + +# [3.0.0-alpha.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@3.0.0-alpha.0...istanbul-lib-coverage@3.0.0-alpha.1) (2019-10-06) + + +### Bug Fixes + +* Drop unneeded coverage data from `nyc --all` ([#456](https://github.com/istanbuljs/istanbuljs/issues/456)) ([f6bb0b4](https://github.com/istanbuljs/istanbuljs/commit/f6bb0b4)), closes [#123](https://github.com/istanbuljs/istanbuljs/issues/123) [#224](https://github.com/istanbuljs/istanbuljs/issues/224) [#260](https://github.com/istanbuljs/istanbuljs/issues/260) [#322](https://github.com/istanbuljs/istanbuljs/issues/322) [#413](https://github.com/istanbuljs/istanbuljs/issues/413) + + + + + +# [3.0.0-alpha.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@2.0.5...istanbul-lib-coverage@3.0.0-alpha.0) (2019-06-19) + + +### Features + +* Update dependencies, require Node.js 8 ([#401](https://github.com/istanbuljs/istanbuljs/issues/401)) ([bf3a539](https://github.com/istanbuljs/istanbuljs/commit/bf3a539)) + + +### BREAKING CHANGES + +* Node.js 8 is now required + + + + + +## [3.2.0](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage-v3.1.0...istanbul-lib-coverage-v3.2.0) (2021-10-17) + + +### Features + +* allow FileCoverage to be initialized with logical tracking ([#644](https://www.github.com/istanbuljs/istanbuljs/issues/644)) ([4cb5af1](https://www.github.com/istanbuljs/istanbuljs/commit/4cb5af1daaf33c3e9a5f3ee44f6bb7f958e5ba04)) + +## [3.1.0](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage-v3.0.2...istanbul-lib-coverage-v3.1.0) (2021-10-17) + + +### Features + +* support tracking Logic Truthiness as additional metric in coverage API ([#639](https://www.github.com/istanbuljs/istanbuljs/issues/639)) ([0967c80](https://www.github.com/istanbuljs/istanbuljs/commit/0967c80b905c3c17675ff2185b2325784e8dc0a2)) + +### [3.0.2](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage-v3.0.1...istanbul-lib-coverage-v3.0.2) (2021-10-11) + + +### Bug Fixes + +* handle merging '0' indexed coverage with '1' indexed coverage ([5dac2bc](https://www.github.com/istanbuljs/istanbuljs/commit/5dac2bcf28d6f27dbb720be72c2b692153418ab5)), closes [#632](https://www.github.com/istanbuljs/istanbuljs/issues/632) + +### [3.0.1](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage-v3.0.0...istanbul-lib-coverage-v3.0.1) (2021-09-23) + + +### Bug Fixes + +* merge branch/statement/functionMap's together when merging two coverage reports ([#617](https://www.github.com/istanbuljs/istanbuljs/issues/617)) ([ff1b5e9](https://www.github.com/istanbuljs/istanbuljs/commit/ff1b5e915201e4ff8f737010509bab98d8238118)) + +## [2.0.5](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@2.0.4...istanbul-lib-coverage@2.0.5) (2019-04-24) + +**Note:** Version bump only for package istanbul-lib-coverage + + + + + +## [2.0.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@2.0.3...istanbul-lib-coverage@2.0.4) (2019-03-12) + +**Note:** Version bump only for package istanbul-lib-coverage + + + + + +## [2.0.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@2.0.2...istanbul-lib-coverage@2.0.3) (2019-01-26) + +**Note:** Version bump only for package istanbul-lib-coverage + + + + + + +## [2.0.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@2.0.1...istanbul-lib-coverage@2.0.2) (2018-12-25) + + + + +**Note:** Version bump only for package istanbul-lib-coverage + + +## [2.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@2.0.0...istanbul-lib-coverage@2.0.1) (2018-07-07) + + + + +**Note:** Version bump only for package istanbul-lib-coverage + + +# [2.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@1.2.0...istanbul-lib-coverage@2.0.0) (2018-06-06) + + +### Bug Fixes + +* use null prototype for map objects ([#177](https://github.com/istanbuljs/istanbuljs/issues/177)) ([9a5a30c](https://github.com/istanbuljs/istanbuljs/commit/9a5a30c)) + + +### BREAKING CHANGES + +* a null prototype is now used in several places rather than the default `{}` assignment. + + + + + +# [1.2.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@1.1.2...istanbul-lib-coverage@1.2.0) (2018-03-04) + + +### Features + +* add skip-empty option for html & text reports ([#140](https://github.com/istanbuljs/istanbuljs/issues/140)) ([d2a4262](https://github.com/istanbuljs/istanbuljs/commit/d2a4262)) + + + + + +## [1.1.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@1.1.1...istanbul-lib-coverage@1.1.2) (2018-02-13) + + + + +**Note:** Version bump only for package istanbul-lib-coverage + + +## [1.1.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@1.1.0...istanbul-lib-coverage@1.1.1) (2017-05-27) + + + + + +# [1.1.0](https://github.com/istanbuljs/istanbul-lib-coverage/compare/istanbul-lib-coverage@1.0.2...istanbul-lib-coverage@1.1.0) (2017-04-29) + + +### Bug Fixes + +* getBranchCoverageByLine() was looking for line coverage using wrong object structure ([bf36658](https://github.com/istanbuljs/istanbul-lib-coverage/commit/bf36658)) + + +### Features + +* add possibility to filter coverage maps when running reports post-hoc ([#24](https://github.com/istanbuljs/istanbuljs/issues/24)) ([e1c99d6](https://github.com/istanbuljs/istanbul-lib-coverage/commit/e1c99d6)) + + + + + +## [1.0.2](https://github.com/istanbuljs/istanbul-lib-coverage/compare/istanbul-lib-coverage@1.0.1...istanbul-lib-coverage@1.0.2) (2017-03-27) + + +## [1.0.1](https://github.com/istanbuljs/istanbul-lib-coverage/compare/v1.0.0...v1.0.1) (2017-01-18) + + +### Bug Fixes + +* handle edge-case surrounding merging two file coverage reports ([22e154c](https://github.com/istanbuljs/istanbul-lib-coverage/commit/22e154c)) + + + + +# [1.0.0](https://github.com/istanbuljs/istanbul-lib-coverage/compare/v1.0.0-alpha.3...v1.0.0) (2016-08-12) + + +### Bug Fixes + +* guard against missing statement ([76aad99](https://github.com/istanbuljs/istanbul-lib-coverage/commit/76aad99)) diff --git a/node_modules/istanbul-lib-coverage/LICENSE b/node_modules/istanbul-lib-coverage/LICENSE new file mode 100755 index 0000000..d55d291 --- /dev/null +++ b/node_modules/istanbul-lib-coverage/LICENSE @@ -0,0 +1,24 @@ +Copyright 2012-2015 Yahoo! Inc. +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 Yahoo! Inc. 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 YAHOO! INC. 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/node_modules/istanbul-lib-coverage/README.md b/node_modules/istanbul-lib-coverage/README.md new file mode 100755 index 0000000..2c24a56 --- /dev/null +++ b/node_modules/istanbul-lib-coverage/README.md @@ -0,0 +1,29 @@ +## istanbul-lib-coverage + +[![Greenkeeper badge](https://badges.greenkeeper.io/istanbuljs/istanbul-lib-coverage.svg)](https://greenkeeper.io/) +[![Build Status](https://travis-ci.org/istanbuljs/istanbul-lib-coverage.svg?branch=master)](https://travis-ci.org/istanbuljs/istanbul-lib-coverage) + +An API that provides a read-only view of coverage information with the ability +to merge and summarize coverage info. + +Supersedes `object-utils` and `collector` from the v0 istanbul API. + +See the docs for the full API. + +```js +var libCoverage = require('istanbul-lib-coverage'); +var map = libCoverage.createCoverageMap(globalCoverageVar); +var summary = libCoverage.createCoverageSummary(); + +// merge another coverage map into the one we created +map.merge(otherCoverageMap); + +// inspect and summarize all file coverage objects in the map +map.files().forEach(function(f) { + var fc = map.fileCoverageFor(f), + s = fc.toSummary(); + summary.merge(s); +}); + +console.log('Global summary', summary); +``` diff --git a/node_modules/istanbul-lib-coverage/index.js b/node_modules/istanbul-lib-coverage/index.js new file mode 100755 index 0000000..bdc5a18 --- /dev/null +++ b/node_modules/istanbul-lib-coverage/index.js @@ -0,0 +1,64 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +/** + * istanbul-lib-coverage exports an API that allows you to create and manipulate + * file coverage, coverage maps (a set of file coverage objects) and summary + * coverage objects. File coverage for the same file can be merged as can + * entire coverage maps. + * + * @module Exports + */ +const { FileCoverage } = require('./lib/file-coverage'); +const { CoverageMap } = require('./lib/coverage-map'); +const { CoverageSummary } = require('./lib/coverage-summary'); + +module.exports = { + /** + * creates a coverage summary object + * @param {Object} obj an argument with the same semantics + * as the one passed to the `CoverageSummary` constructor + * @returns {CoverageSummary} + */ + createCoverageSummary(obj) { + if (obj && obj instanceof CoverageSummary) { + return obj; + } + return new CoverageSummary(obj); + }, + /** + * creates a CoverageMap object + * @param {Object} obj optional - an argument with the same semantics + * as the one passed to the CoverageMap constructor. + * @returns {CoverageMap} + */ + createCoverageMap(obj) { + if (obj && obj instanceof CoverageMap) { + return obj; + } + return new CoverageMap(obj); + }, + /** + * creates a FileCoverage object + * @param {Object} obj optional - an argument with the same semantics + * as the one passed to the FileCoverage constructor. + * @returns {FileCoverage} + */ + createFileCoverage(obj) { + if (obj && obj instanceof FileCoverage) { + return obj; + } + return new FileCoverage(obj); + } +}; + +/** classes exported for reuse */ +module.exports.classes = { + /** + * the file coverage constructor + */ + FileCoverage +}; diff --git a/node_modules/istanbul-lib-coverage/lib/coverage-map.js b/node_modules/istanbul-lib-coverage/lib/coverage-map.js new file mode 100755 index 0000000..0a1ebd0 --- /dev/null +++ b/node_modules/istanbul-lib-coverage/lib/coverage-map.js @@ -0,0 +1,134 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +const { FileCoverage } = require('./file-coverage'); +const { CoverageSummary } = require('./coverage-summary'); + +function maybeConstruct(obj, klass) { + if (obj instanceof klass) { + return obj; + } + + return new klass(obj); +} + +function loadMap(source) { + const data = Object.create(null); + if (!source) { + return data; + } + + Object.entries(source).forEach(([k, cov]) => { + data[k] = maybeConstruct(cov, FileCoverage); + }); + + return data; +} + +/** CoverageMap is a map of `FileCoverage` objects keyed by file paths. */ +class CoverageMap { + /** + * @constructor + * @param {Object} [obj=undefined] obj A coverage map from which to initialize this + * map's contents. This can be the raw global coverage object. + */ + constructor(obj) { + if (obj instanceof CoverageMap) { + this.data = obj.data; + } else { + this.data = loadMap(obj); + } + } + + /** + * merges a second coverage map into this one + * @param {CoverageMap} obj - a CoverageMap or its raw data. Coverage is merged + * correctly for the same files and additional file coverage keys are created + * as needed. + */ + merge(obj) { + const other = maybeConstruct(obj, CoverageMap); + Object.values(other.data).forEach(fc => { + this.addFileCoverage(fc); + }); + } + + /** + * filter the coveragemap based on the callback provided + * @param {Function (filename)} callback - Returns true if the path + * should be included in the coveragemap. False if it should be + * removed. + */ + filter(callback) { + Object.keys(this.data).forEach(k => { + if (!callback(k)) { + delete this.data[k]; + } + }); + } + + /** + * returns a JSON-serializable POJO for this coverage map + * @returns {Object} + */ + toJSON() { + return this.data; + } + + /** + * returns an array for file paths for which this map has coverage + * @returns {Array{string}} - array of files + */ + files() { + return Object.keys(this.data); + } + + /** + * returns the file coverage for the specified file. + * @param {String} file + * @returns {FileCoverage} + */ + fileCoverageFor(file) { + const fc = this.data[file]; + if (!fc) { + throw new Error(`No file coverage available for: ${file}`); + } + return fc; + } + + /** + * adds a file coverage object to this map. If the path for the object, + * already exists in the map, it is merged with the existing coverage + * otherwise a new key is added to the map. + * @param {FileCoverage} fc the file coverage to add + */ + addFileCoverage(fc) { + const cov = new FileCoverage(fc); + const { path } = cov; + if (this.data[path]) { + this.data[path].merge(cov); + } else { + this.data[path] = cov; + } + } + + /** + * returns the coverage summary for all the file coverage objects in this map. + * @returns {CoverageSummary} + */ + getCoverageSummary() { + const ret = new CoverageSummary(); + Object.values(this.data).forEach(fc => { + ret.merge(fc.toSummary()); + }); + + return ret; + } +} + +module.exports = { + CoverageMap +}; diff --git a/node_modules/istanbul-lib-coverage/lib/coverage-summary.js b/node_modules/istanbul-lib-coverage/lib/coverage-summary.js new file mode 100755 index 0000000..9b769c6 --- /dev/null +++ b/node_modules/istanbul-lib-coverage/lib/coverage-summary.js @@ -0,0 +1,112 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +const percent = require('./percent'); +const dataProperties = require('./data-properties'); + +function blankSummary() { + const empty = () => ({ + total: 0, + covered: 0, + skipped: 0, + pct: 'Unknown' + }); + + return { + lines: empty(), + statements: empty(), + functions: empty(), + branches: empty(), + branchesTrue: empty() + }; +} + +// asserts that a data object "looks like" a summary coverage object +function assertValidSummary(obj) { + const valid = + obj && obj.lines && obj.statements && obj.functions && obj.branches; + if (!valid) { + throw new Error( + 'Invalid summary coverage object, missing keys, found:' + + Object.keys(obj).join(',') + ); + } +} + +/** + * CoverageSummary provides a summary of code coverage . It exposes 4 properties, + * `lines`, `statements`, `branches`, and `functions`. Each of these properties + * is an object that has 4 keys `total`, `covered`, `skipped` and `pct`. + * `pct` is a percentage number (0-100). + */ +class CoverageSummary { + /** + * @constructor + * @param {Object|CoverageSummary} [obj=undefined] an optional data object or + * another coverage summary to initialize this object with. + */ + constructor(obj) { + if (!obj) { + this.data = blankSummary(); + } else if (obj instanceof CoverageSummary) { + this.data = obj.data; + } else { + this.data = obj; + } + assertValidSummary(this.data); + } + + /** + * merges a second summary coverage object into this one + * @param {CoverageSummary} obj - another coverage summary object + */ + merge(obj) { + const keys = [ + 'lines', + 'statements', + 'branches', + 'functions', + 'branchesTrue' + ]; + keys.forEach(key => { + if (obj[key]) { + this[key].total += obj[key].total; + this[key].covered += obj[key].covered; + this[key].skipped += obj[key].skipped; + this[key].pct = percent(this[key].covered, this[key].total); + } + }); + + return this; + } + + /** + * returns a POJO that is JSON serializable. May be used to get the raw + * summary object. + */ + toJSON() { + return this.data; + } + + /** + * return true if summary has no lines of code + */ + isEmpty() { + return this.lines.total === 0; + } +} + +dataProperties(CoverageSummary, [ + 'lines', + 'statements', + 'functions', + 'branches', + 'branchesTrue' +]); + +module.exports = { + CoverageSummary +}; diff --git a/node_modules/istanbul-lib-coverage/lib/data-properties.js b/node_modules/istanbul-lib-coverage/lib/data-properties.js new file mode 100755 index 0000000..3a12d40 --- /dev/null +++ b/node_modules/istanbul-lib-coverage/lib/data-properties.js @@ -0,0 +1,12 @@ +'use strict'; + +module.exports = function dataProperties(klass, properties) { + properties.forEach(p => { + Object.defineProperty(klass.prototype, p, { + enumerable: true, + get() { + return this.data[p]; + } + }); + }); +}; diff --git a/node_modules/istanbul-lib-coverage/lib/file-coverage.js b/node_modules/istanbul-lib-coverage/lib/file-coverage.js new file mode 100755 index 0000000..80a36ab --- /dev/null +++ b/node_modules/istanbul-lib-coverage/lib/file-coverage.js @@ -0,0 +1,345 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +const percent = require('./percent'); +const dataProperties = require('./data-properties'); +const { CoverageSummary } = require('./coverage-summary'); + +// returns a data object that represents empty coverage +function emptyCoverage(filePath, reportLogic) { + const cov = { + path: filePath, + statementMap: {}, + fnMap: {}, + branchMap: {}, + s: {}, + f: {}, + b: {} + }; + if (reportLogic) cov.bT = {}; + return cov; +} + +// asserts that a data object "looks like" a coverage object +function assertValidObject(obj) { + const valid = + obj && + obj.path && + obj.statementMap && + obj.fnMap && + obj.branchMap && + obj.s && + obj.f && + obj.b; + if (!valid) { + throw new Error( + 'Invalid file coverage object, missing keys, found:' + + Object.keys(obj).join(',') + ); + } +} + +const keyFromLoc = ({ start, end }) => + `${start.line}|${start.column}|${end.line}|${end.column}`; + +const mergeProp = (aHits, aMap, bHits, bMap, itemKey = keyFromLoc) => { + const aItems = {}; + for (const [key, itemHits] of Object.entries(aHits)) { + const item = aMap[key]; + aItems[itemKey(item)] = [itemHits, item]; + } + for (const [key, bItemHits] of Object.entries(bHits)) { + const bItem = bMap[key]; + const k = itemKey(bItem); + + if (aItems[k]) { + const aPair = aItems[k]; + if (bItemHits.forEach) { + // should this throw an exception if aPair[0] is not an array? + bItemHits.forEach((hits, h) => { + if (aPair[0][h] !== undefined) aPair[0][h] += hits; + else aPair[0][h] = hits; + }); + } else { + aPair[0] += bItemHits; + } + } else { + aItems[k] = [bItemHits, bItem]; + } + } + const hits = {}; + const map = {}; + + Object.values(aItems).forEach(([itemHits, item], i) => { + hits[i] = itemHits; + map[i] = item; + }); + + return [hits, map]; +}; + +/** + * provides a read-only view of coverage for a single file. + * The deep structure of this object is documented elsewhere. It has the following + * properties: + * + * * `path` - the file path for which coverage is being tracked + * * `statementMap` - map of statement locations keyed by statement index + * * `fnMap` - map of function metadata keyed by function index + * * `branchMap` - map of branch metadata keyed by branch index + * * `s` - hit counts for statements + * * `f` - hit count for functions + * * `b` - hit count for branches + */ +class FileCoverage { + /** + * @constructor + * @param {Object|FileCoverage|String} pathOrObj is a string that initializes + * and empty coverage object with the specified file path or a data object that + * has all the required properties for a file coverage object. + */ + constructor(pathOrObj, reportLogic = false) { + if (!pathOrObj) { + throw new Error( + 'Coverage must be initialized with a path or an object' + ); + } + if (typeof pathOrObj === 'string') { + this.data = emptyCoverage(pathOrObj, reportLogic); + } else if (pathOrObj instanceof FileCoverage) { + this.data = pathOrObj.data; + } else if (typeof pathOrObj === 'object') { + this.data = pathOrObj; + } else { + throw new Error('Invalid argument to coverage constructor'); + } + assertValidObject(this.data); + } + + /** + * returns computed line coverage from statement coverage. + * This is a map of hits keyed by line number in the source. + */ + getLineCoverage() { + const statementMap = this.data.statementMap; + const statements = this.data.s; + const lineMap = Object.create(null); + + Object.entries(statements).forEach(([st, count]) => { + /* istanbul ignore if: is this even possible? */ + if (!statementMap[st]) { + return; + } + const { line } = statementMap[st].start; + const prevVal = lineMap[line]; + if (prevVal === undefined || prevVal < count) { + lineMap[line] = count; + } + }); + return lineMap; + } + + /** + * returns an array of uncovered line numbers. + * @returns {Array} an array of line numbers for which no hits have been + * collected. + */ + getUncoveredLines() { + const lc = this.getLineCoverage(); + const ret = []; + Object.entries(lc).forEach(([l, hits]) => { + if (hits === 0) { + ret.push(l); + } + }); + return ret; + } + + /** + * returns a map of branch coverage by source line number. + * @returns {Object} an object keyed by line number. Each object + * has a `covered`, `total` and `coverage` (percentage) property. + */ + getBranchCoverageByLine() { + const branchMap = this.branchMap; + const branches = this.b; + const ret = {}; + Object.entries(branchMap).forEach(([k, map]) => { + const line = map.line || map.loc.start.line; + const branchData = branches[k]; + ret[line] = ret[line] || []; + ret[line].push(...branchData); + }); + Object.entries(ret).forEach(([k, dataArray]) => { + const covered = dataArray.filter(item => item > 0); + const coverage = (covered.length / dataArray.length) * 100; + ret[k] = { + covered: covered.length, + total: dataArray.length, + coverage + }; + }); + return ret; + } + + /** + * return a JSON-serializable POJO for this file coverage object + */ + toJSON() { + return this.data; + } + + /** + * merges a second coverage object into this one, updating hit counts + * @param {FileCoverage} other - the coverage object to be merged into this one. + * Note that the other object should have the same structure as this one (same file). + */ + merge(other) { + if (other.all === true) { + return; + } + + if (this.all === true) { + this.data = other.data; + return; + } + + let [hits, map] = mergeProp( + this.s, + this.statementMap, + other.s, + other.statementMap + ); + this.data.s = hits; + this.data.statementMap = map; + + const keyFromLocProp = x => keyFromLoc(x.loc); + const keyFromLocationsProp = x => keyFromLoc(x.locations[0]); + + [hits, map] = mergeProp( + this.f, + this.fnMap, + other.f, + other.fnMap, + keyFromLocProp + ); + this.data.f = hits; + this.data.fnMap = map; + + [hits, map] = mergeProp( + this.b, + this.branchMap, + other.b, + other.branchMap, + keyFromLocationsProp + ); + this.data.b = hits; + this.data.branchMap = map; + + // Tracking additional information about branch truthiness + // can be optionally enabled: + if (this.bT && other.bT) { + [hits, map] = mergeProp( + this.bT, + this.branchMap, + other.bT, + other.branchMap, + keyFromLocationsProp + ); + this.data.bT = hits; + } + } + + computeSimpleTotals(property) { + let stats = this[property]; + + if (typeof stats === 'function') { + stats = stats.call(this); + } + + const ret = { + total: Object.keys(stats).length, + covered: Object.values(stats).filter(v => !!v).length, + skipped: 0 + }; + ret.pct = percent(ret.covered, ret.total); + return ret; + } + + computeBranchTotals(property) { + const stats = this[property]; + const ret = { total: 0, covered: 0, skipped: 0 }; + + Object.values(stats).forEach(branches => { + ret.covered += branches.filter(hits => hits > 0).length; + ret.total += branches.length; + }); + ret.pct = percent(ret.covered, ret.total); + return ret; + } + + /** + * resets hit counts for all statements, functions and branches + * in this coverage object resulting in zero coverage. + */ + resetHits() { + const statements = this.s; + const functions = this.f; + const branches = this.b; + const branchesTrue = this.bT; + Object.keys(statements).forEach(s => { + statements[s] = 0; + }); + Object.keys(functions).forEach(f => { + functions[f] = 0; + }); + Object.keys(branches).forEach(b => { + branches[b].fill(0); + }); + // Tracking additional information about branch truthiness + // can be optionally enabled: + if (branchesTrue) { + Object.keys(branchesTrue).forEach(bT => { + branchesTrue[bT].fill(0); + }); + } + } + + /** + * returns a CoverageSummary for this file coverage object + * @returns {CoverageSummary} + */ + toSummary() { + const ret = {}; + ret.lines = this.computeSimpleTotals('getLineCoverage'); + ret.functions = this.computeSimpleTotals('f', 'fnMap'); + ret.statements = this.computeSimpleTotals('s', 'statementMap'); + ret.branches = this.computeBranchTotals('b'); + // Tracking additional information about branch truthiness + // can be optionally enabled: + if (this['bt']) { + ret.branchesTrue = this.computeBranchTotals('bT'); + } + return new CoverageSummary(ret); + } +} + +// expose coverage data attributes +dataProperties(FileCoverage, [ + 'path', + 'statementMap', + 'fnMap', + 'branchMap', + 's', + 'f', + 'b', + 'bT', + 'all' +]); + +module.exports = { + FileCoverage +}; diff --git a/node_modules/istanbul-lib-coverage/lib/percent.js b/node_modules/istanbul-lib-coverage/lib/percent.js new file mode 100755 index 0000000..c7b7aaf --- /dev/null +++ b/node_modules/istanbul-lib-coverage/lib/percent.js @@ -0,0 +1,15 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +module.exports = function percent(covered, total) { + let tmp; + if (total > 0) { + tmp = (1000 * 100 * covered) / total; + return Math.floor(tmp / 10) / 100; + } else { + return 100.0; + } +}; diff --git a/node_modules/istanbul-lib-coverage/package.json b/node_modules/istanbul-lib-coverage/package.json new file mode 100755 index 0000000..628584f --- /dev/null +++ b/node_modules/istanbul-lib-coverage/package.json @@ -0,0 +1,47 @@ +{ + "name": "istanbul-lib-coverage", + "version": "3.2.0", + "description": "Data library for istanbul coverage objects", + "author": "Krishnan Anantheswaran ", + "main": "index.js", + "files": [ + "lib", + "index.js" + ], + "scripts": { + "test": "nyc mocha" + }, + "devDependencies": { + "chai": "^4.2.0", + "mocha": "^6.2.2", + "nyc": "^15.0.0-beta.2" + }, + "karmaDeps": { + "browserify-istanbul": "^0.2.1", + "karma": "^0.13.10", + "karma-browserify": "^4.2.1", + "karma-chrome-launcher": "^0.2.0", + "karma-coverage": "^0.4.2", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.0", + "phantomjs": "^1.9.17" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/istanbuljs/istanbuljs.git", + "directory": "packages/istanbul-lib-coverage" + }, + "keywords": [ + "istanbul", + "coverage", + "data" + ], + "license": "BSD-3-Clause", + "bugs": { + "url": "https://github.com/istanbuljs/istanbuljs/issues" + }, + "homepage": "https://istanbul.js.org/", + "engines": { + "node": ">=8" + } +} diff --git a/node_modules/istanbul-lib-instrument/CHANGELOG.md b/node_modules/istanbul-lib-instrument/CHANGELOG.md new file mode 100755 index 0000000..8b8ac05 --- /dev/null +++ b/node_modules/istanbul-lib-instrument/CHANGELOG.md @@ -0,0 +1,631 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [5.2.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.2.0...istanbul-lib-instrument-v5.2.1) (2022-10-05) + + +### Bug Fixes + +* handle error when inputSourceMap is not a plain object ([#662](https://github.com/istanbuljs/istanbuljs/issues/662)) ([3e3611f](https://github.com/istanbuljs/istanbuljs/commit/3e3611f0efffefd5f87e6cbccd840e9f33aaf43e)) + +## [5.2.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.1.0...istanbul-lib-instrument-v5.2.0) (2022-02-21) + + +### Features + +* exclude Empty Object and Arrays in Truthy Detection ([#666](https://github.com/istanbuljs/istanbuljs/issues/666)) ([e279684](https://github.com/istanbuljs/istanbuljs/commit/e279684e735f4b7dbe2b632cde2515f6862099de)) + +## [5.1.0](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.0.4...istanbul-lib-instrument-v5.1.0) (2021-10-27) + + +### Features + +* option to evaluate logical truthiness, for applications such as fuzzing ([#629](https://www.github.com/istanbuljs/istanbuljs/issues/629)) ([a743b84](https://www.github.com/istanbuljs/istanbuljs/commit/a743b8442e977f0c77ffa282eed7ac84ca200d1f)) + +### [5.0.4](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.0.3...istanbul-lib-instrument-v5.0.4) (2021-10-16) + + +### Bug Fixes + +* **magic-value:** make incrementing magic value a manual step ([#641](https://www.github.com/istanbuljs/istanbuljs/issues/641)) ([823010b](https://www.github.com/istanbuljs/istanbuljs/commit/823010b821cf81bd91377d75fc83f0875925db66)) + +### [5.0.3](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.0.2...istanbul-lib-instrument-v5.0.3) (2021-10-06) + + +### Bug Fixes + +* coverage.branchMap else location. ([#633](https://www.github.com/istanbuljs/istanbuljs/issues/633)) ([eb4b4ec](https://www.github.com/istanbuljs/istanbuljs/commit/eb4b4ec8f4b858655a66b0033fcc662f44ef4cc9)) + +### [5.0.2](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.0.1...istanbul-lib-instrument-v5.0.2) (2021-09-13) + + +### Bug Fixes + +* **build:** verfiy automated publication ([b232690](https://www.github.com/istanbuljs/istanbuljs/commit/b232690193f4b524332046c96dd1cdc6e881c6c7)) + +### [5.0.1](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.0.0...istanbul-lib-instrument-v5.0.1) (2021-09-13) + + +### Bug Fixes + +* **build:** verfiy automated publication ([74c96bd](https://www.github.com/istanbuljs/istanbuljs/commit/74c96bdc4224a06e2e1166ebd9adf8faf28438b1)) + +## [5.0.0](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v4.0.3...istanbul-lib-instrument-v5.0.0) (2021-09-13) + + +### ⚠ BREAKING CHANGES + +* istanbul-lib-instrument no longer uses babel + +### Code Refactoring + +* istanbul-lib-instrument no longer uses babel ([8d3badb](https://www.github.com/istanbuljs/istanbuljs/commit/8d3badb8f6c9a4bed9af8e19c3ac6459ebd7267b)) + +## [4.0.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.2...istanbul-lib-instrument@4.0.3) (2020-05-09) + + +### Bug Fixes + +* Prevent readInitialCoverage from reading babel config ([#562](https://github.com/istanbuljs/istanbuljs/issues/562)) ([49b4745](https://github.com/istanbuljs/istanbuljs/commit/49b474525c15e703642916011bd86f663aca0c3d)) + + + + + +## [4.0.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.1...istanbul-lib-instrument@4.0.2) (2020-05-06) + + +### Bug Fixes + +* Add ts-ignore to reassignment of generated function ([#557](https://github.com/istanbuljs/istanbuljs/issues/557)) ([817efb0](https://github.com/istanbuljs/istanbuljs/commit/817efb04fc161efae426b2231a0221606b09f559)) +* Use @babel/core for all babel imports. ([#555](https://github.com/istanbuljs/istanbuljs/issues/555)) ([a99a13e](https://github.com/istanbuljs/istanbuljs/commit/a99a13ee6931fc124a2a723c3f511cdbcb0aa81d)) + + + + + +## [4.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.0...istanbul-lib-instrument@4.0.1) (2020-02-03) + + +### Bug Fixes + +* Always call coverage initialization function ([#524](https://github.com/istanbuljs/istanbuljs/issues/524)) ([c6536c1](https://github.com/istanbuljs/istanbuljs/commit/c6536c14bf0663ca7e0493dd40ea132b05352594)) + + + + + +# [4.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.0-alpha.3...istanbul-lib-instrument@4.0.0) (2019-12-20) + +**Note:** Version bump only for package istanbul-lib-instrument + + + + + +# [4.0.0-alpha.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.0-alpha.2...istanbul-lib-instrument@4.0.0-alpha.3) (2019-12-07) + +**Note:** Version bump only for package istanbul-lib-instrument + + + + + +# [4.0.0-alpha.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.0-alpha.1...istanbul-lib-instrument@4.0.0-alpha.2) (2019-11-01) + + +### Bug Fixes + +* Produce properly merged source-maps when inputSourceMap is provided ([#487](https://github.com/istanbuljs/istanbuljs/issues/487)) ([8f8c88e](https://github.com/istanbuljs/istanbuljs/commit/8f8c88e3a2add4c08729e41e356aa7981dc69d4d)) + + + + + +# [4.0.0-alpha.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@4.0.0-alpha.0...istanbul-lib-instrument@4.0.0-alpha.1) (2019-10-06) + + +### Bug Fixes + +* Eliminate babel hoisting of the coverage variable ([#481](https://github.com/istanbuljs/istanbuljs/issues/481)) ([8dfbcba](https://github.com/istanbuljs/istanbuljs/commit/8dfbcba)), closes [#92](https://github.com/istanbuljs/istanbuljs/issues/92) +* Honor ignore hints in chained if statements ([#469](https://github.com/istanbuljs/istanbuljs/issues/469)) ([a629770](https://github.com/istanbuljs/istanbuljs/commit/a629770)), closes [#468](https://github.com/istanbuljs/istanbuljs/issues/468) +* Populate lastFileCoverage for already instrumented files ([#470](https://github.com/istanbuljs/istanbuljs/issues/470)) ([ea6d779](https://github.com/istanbuljs/istanbuljs/commit/ea6d779)), closes [istanbuljs/nyc#594](https://github.com/istanbuljs/nyc/issues/594) + + +### Features + +* Use @istanbuljs/schema to pull defaults ([#485](https://github.com/istanbuljs/istanbuljs/issues/485)) ([87e27f3](https://github.com/istanbuljs/istanbuljs/commit/87e27f3)), closes [#460](https://github.com/istanbuljs/istanbuljs/issues/460) + + +### BREAKING CHANGES + +* The defaults for `autoWrap`, `preserveComments`, +`esModules` and `produceSourceMap` are now true. This applies only to +the stand-alone instrumenter, the visitor does not use these options. +* The `flow` and `jsx` parser plugins are no longer +enabled by default. This applies only to the stand-alone instrumenter, +the visitor does not use this option. +* The `plugins` option of the stand-alone instrumenter +has been renamed to `parserPlugins` to match nyc. + + + + + +# [4.0.0-alpha.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.3.0...istanbul-lib-instrument@4.0.0-alpha.0) (2019-06-19) + + +### Features + +* Update dependencies, require Node.js 8 ([#401](https://github.com/istanbuljs/istanbuljs/issues/401)) ([bf3a539](https://github.com/istanbuljs/istanbuljs/commit/bf3a539)) + + +### BREAKING CHANGES + +* Node.js 8 is now required + + + + + +# [3.3.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.2.0...istanbul-lib-instrument@3.3.0) (2019-04-24) + + +### Features + +* Enable classProperties and classPrivateProperties parsers and coverage. ([#379](https://github.com/istanbuljs/istanbuljs/issues/379)) ([c09dc38](https://github.com/istanbuljs/istanbuljs/commit/c09dc38)) + + + + + +# [3.2.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.1.2...istanbul-lib-instrument@3.2.0) (2019-04-09) + + +### Features + +* Add bigInt and importMeta to default parser plugins. ([#356](https://github.com/istanbuljs/istanbuljs/issues/356)) ([fb4d6ed](https://github.com/istanbuljs/istanbuljs/commit/fb4d6ed)), closes [#338](https://github.com/istanbuljs/istanbuljs/issues/338) + + + + + +## [3.1.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.1.1...istanbul-lib-instrument@3.1.2) (2019-04-03) + + +### Bug Fixes + +* Be more friendly to ts-node. ([#352](https://github.com/istanbuljs/istanbuljs/issues/352)) ([40d15f5](https://github.com/istanbuljs/istanbuljs/commit/40d15f5)), closes [#336](https://github.com/istanbuljs/istanbuljs/issues/336) + + + + + +## [3.1.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.1.0...istanbul-lib-instrument@3.1.1) (2019-03-12) + + +### Bug Fixes + +* Honor istanbul ignore next hints placed before export statement. ([#298](https://github.com/istanbuljs/istanbuljs/issues/298)) ([f24795d](https://github.com/istanbuljs/istanbuljs/commit/f24795d)), closes [#297](https://github.com/istanbuljs/istanbuljs/issues/297) + + + + + +# [3.1.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.0.1...istanbul-lib-instrument@3.1.0) (2019-01-26) + + +### Features + +* dont skip for loop initialization instrumentation ([#188](https://github.com/istanbuljs/istanbuljs/issues/188)) ([2e0258e](https://github.com/istanbuljs/istanbuljs/commit/2e0258e)) +* New options coverageGlobalScope and coverageGlobalScopeFunc. ([#200](https://github.com/istanbuljs/istanbuljs/issues/200)) ([25509c7](https://github.com/istanbuljs/istanbuljs/commit/25509c7)), closes [#199](https://github.com/istanbuljs/istanbuljs/issues/199) + + + + + + +## [3.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@3.0.0...istanbul-lib-instrument@3.0.1) (2018-12-25) + + + + +**Note:** Version bump only for package istanbul-lib-instrument + + +# [3.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.3.2...istanbul-lib-instrument@3.0.0) (2018-09-06) + + +### Chores + +* Update test for babel 7. ([#218](https://github.com/istanbuljs/istanbuljs/issues/218)) ([9cf4d43](https://github.com/istanbuljs/istanbuljs/commit/9cf4d43)), closes [#205](https://github.com/istanbuljs/istanbuljs/issues/205) + + +### Features + +* Add option plugins ([#205](https://github.com/istanbuljs/istanbuljs/issues/205)) ([312f81f](https://github.com/istanbuljs/istanbuljs/commit/312f81f)) +* Update babel to 7.0.0. ([#215](https://github.com/istanbuljs/istanbuljs/issues/215)) ([8a96613](https://github.com/istanbuljs/istanbuljs/commit/8a96613)) + + +### BREAKING CHANGES + +* was added which requires an option for the `decorators` +plugin. Add it to get tests working again, commit updated api.md. + + + + + +## [2.3.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.3.1...istanbul-lib-instrument@2.3.2) (2018-07-24) + + + + +**Note:** Version bump only for package istanbul-lib-instrument + + +## [2.3.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.3.0...istanbul-lib-instrument@2.3.1) (2018-07-07) + + +### Bug Fixes + +* Don't ignore src/visitor.js for self test. ([#194](https://github.com/istanbuljs/istanbuljs/issues/194)) ([71b815d](https://github.com/istanbuljs/istanbuljs/commit/71b815d)) + + + + + +# [2.3.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.2.1...istanbul-lib-instrument@2.3.0) (2018-06-27) + + +### Features + +* update pinned babel version to latest release. ([#189](https://github.com/istanbuljs/istanbuljs/issues/189)) ([ac8ec07](https://github.com/istanbuljs/istanbuljs/commit/ac8ec07)) + + + + + +## [2.2.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.2.0...istanbul-lib-instrument@2.2.1) (2018-06-26) + + +### Bug Fixes + +* Instrument ObjectMethod's. ([#182](https://github.com/istanbuljs/istanbuljs/issues/182)) ([126f09d](https://github.com/istanbuljs/istanbuljs/commit/126f09d)) +* update default args test guard to work on supported versions. ([#185](https://github.com/istanbuljs/istanbuljs/issues/185)) ([955511a](https://github.com/istanbuljs/istanbuljs/commit/955511a)) + + + + + +# [2.2.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.0.2...istanbul-lib-instrument@2.2.0) (2018-06-06) + + +### Features + +* add support for optional catch binding ([#175](https://github.com/istanbuljs/istanbuljs/issues/175)) ([088dd9f](https://github.com/istanbuljs/istanbuljs/commit/088dd9f)) + + + + + +# [2.1.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.0.2...istanbul-lib-instrument@2.1.0) (2018-05-31) + + +### Features + +* add support for optional catch binding ([#175](https://github.com/istanbuljs/istanbuljs/issues/175)) ([088dd9f](https://github.com/istanbuljs/istanbuljs/commit/088dd9f)) + + + + + +## [2.0.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.0.1...istanbul-lib-instrument@2.0.2) (2018-05-31) + + + + +**Note:** Version bump only for package istanbul-lib-instrument + + +## [2.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@2.0.0...istanbul-lib-instrument@2.0.1) (2018-05-31) + + +### Bug Fixes + +* should import [@babel](https://github.com/babel)/template ([85a0d1a](https://github.com/istanbuljs/istanbuljs/commit/85a0d1a)) + + + + + +# [2.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.10.1...istanbul-lib-instrument@2.0.0) (2018-05-31) + + +### Bug Fixes + +* parenthesize superClass on non-idetifier case ([#158](https://github.com/istanbuljs/istanbuljs/issues/158)) ([6202c88](https://github.com/istanbuljs/istanbuljs/commit/6202c88)) + + +### Chores + +* upgrade babel in instrumenter ([#174](https://github.com/istanbuljs/istanbuljs/issues/174)) ([ce23e91](https://github.com/istanbuljs/istanbuljs/commit/ce23e91)) + + +### BREAKING CHANGES + +* babel@7 drops Node@4 support + + + + + +## [1.10.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.10.0...istanbul-lib-instrument@1.10.1) (2018-03-09) + + +### Bug Fixes + +* default value for ignorelassMethods ([#151](https://github.com/istanbuljs/istanbuljs/issues/151)) ([5dd88e8](https://github.com/istanbuljs/istanbuljs/commit/5dd88e8)) + + + + + +# [1.10.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.9.2...istanbul-lib-instrument@1.10.0) (2018-03-04) + + +### Features + +* allows an array of ignored method names to be provided ([#127](https://github.com/istanbuljs/istanbuljs/issues/127)) ([67918e2](https://github.com/istanbuljs/istanbuljs/commit/67918e2)) + + + + + +## [1.9.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.9.1...istanbul-lib-instrument@1.9.2) (2018-02-13) + + +### Bug Fixes + +* compatibility with babel 7 ([#135](https://github.com/istanbuljs/istanbuljs/issues/135)) ([6cac849](https://github.com/istanbuljs/istanbuljs/commit/6cac849)) +* handle instrumentation when a function is called Function ([#131](https://github.com/istanbuljs/istanbuljs/issues/131)) ([b12a07e](https://github.com/istanbuljs/istanbuljs/commit/b12a07e)) +* proper passing of the preserveComments option to babel ([#122](https://github.com/istanbuljs/istanbuljs/issues/122)) ([470bb0e](https://github.com/istanbuljs/istanbuljs/commit/470bb0e)) +* update instrument, account for lack of arrow expression ([#119](https://github.com/istanbuljs/istanbuljs/issues/119)) ([#125](https://github.com/istanbuljs/istanbuljs/issues/125)) ([0968206](https://github.com/istanbuljs/istanbuljs/commit/0968206)) + + + + + +## [1.9.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.9.0...istanbul-lib-instrument@1.9.1) (2017-10-22) + + +### Bug Fixes + +* address issue with class instrumentation ([#111](https://github.com/istanbuljs/istanbuljs/issues/111)) ([cbd1c14](https://github.com/istanbuljs/istanbuljs/commit/cbd1c14)) + + + + + +# [1.9.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.8.0...istanbul-lib-instrument@1.9.0) (2017-10-21) + + +### Bug Fixes + +* support conditional expression for superClass ([#106](https://github.com/istanbuljs/istanbuljs/issues/106)) ([aae256f](https://github.com/istanbuljs/istanbuljs/commit/aae256f)) + + +### Features + +* add support for ignoring entire files ([#108](https://github.com/istanbuljs/istanbuljs/issues/108)) ([f12da65](https://github.com/istanbuljs/istanbuljs/commit/f12da65)) + + + + + +# [1.8.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.5...istanbul-lib-instrument@1.8.0) (2017-09-05) + + +### Features + +* add support for object-spread syntax ([#82](https://github.com/istanbuljs/istanbuljs/issues/82)) ([28d5566](https://github.com/istanbuljs/istanbuljs/commit/28d5566)) + + + + + +## [1.7.5](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.4...istanbul-lib-instrument@1.7.5) (2017-08-23) + + +### Bug Fixes + +* name of function is now preserved or named exports ([#79](https://github.com/istanbuljs/istanbuljs/issues/79)) ([2ce8974](https://github.com/istanbuljs/istanbuljs/commit/2ce8974)) + + + + + +## [1.7.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.3...istanbul-lib-instrument@1.7.4) (2017-07-16) + + +### Bug Fixes + +* update increment operator to appropriate expression type ([#74](https://github.com/istanbuljs/istanbuljs/issues/74)) ([dc69e66](https://github.com/istanbuljs/istanbuljs/commit/dc69e66)) + + + + + +## [1.7.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.2...istanbul-lib-instrument@1.7.3) (2017-06-25) + + + + + +## [1.7.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.1...istanbul-lib-instrument@1.7.2) (2017-05-27) + + +### Bug Fixes + +* hoist statement counter for class variables, so that name is preserved ([#60](https://github.com/istanbuljs/istanbuljs/issues/60)) ([120d221](https://github.com/istanbuljs/istanbuljs/commit/120d221)) + + + + + +## [1.7.1](https://github.com/istanbuljs/istanbul-lib-instrument/compare/istanbul-lib-instrument@1.7.0...istanbul-lib-instrument@1.7.1) (2017-04-29) + + +### Bug Fixes + +* don't instrument a file if it has already been instrumented ([#38](https://github.com/istanbuljs/istanbuljs/issues/38)) ([9c38e4e](https://github.com/istanbuljs/istanbul-lib-instrument/commit/9c38e4e)) + + + + + +# [1.7.0](https://github.com/istanbuljs/istanbul-lib-instrument/compare/istanbul-lib-instrument@1.6.2...istanbul-lib-instrument@1.7.0) (2017-03-27) + + +### Features + +* use extended babylon support; adding features such as jsx ([#22](https://github.com/istanbuljs/istanbuljs/issues/22)) ([11c2438](https://github.com/istanbuljs/istanbul-lib-instrument/commit/11c2438)) + + +## [1.6.2](https://github.com/istanbuljs/istanbul-lib-instrument/compare/istanbul-lib-instrument@1.6.1...istanbul-lib-instrument@1.6.2) (2017-03-22) + + +### Bug Fixes + +* loc is sometimes not defined, so loc.start fails see [#99](https://github.com/istanbuljs/istanbuljs/issues/99) ([#18](https://github.com/istanbuljs/istanbuljs/issues/18)) ([df85ba6](https://github.com/istanbuljs/istanbul-lib-instrument/commit/df85ba6)) + + +## [1.6.1](https://github.com/istanbuljs/istanbul-lib-instrument/compare/istanbul-lib-instrument@1.6.0...istanbul-lib-instrument@1.6.1) (2017-03-21) + + +# [1.6.0](https://github.com/istanbuljs/istanbul-lib-instrument/compare/istanbul-lib-instrument@1.4.2...istanbul-lib-instrument@1.6.0) (2017-03-21) + + +### Features + +* adds line number property back to coverage.json ([b03b927](https://github.com/istanbuljs/istanbul-lib-instrument/commit/b03b927)) + + +## [1.4.2](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.4.1...v1.4.2) (2017-01-04) + + +### Bug Fixes + +* only hoist counter for a smaller subset of function declarations ([9f8931e](https://github.com/istanbuljs/istanbul-lib-instrument/commit/9f8931e)) + + + + +## [1.4.1](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.4.0...v1.4.1) (2017-01-04) + + +### Bug Fixes + +* address regression discussed in https://github.com/istanbuljs/babel-plugin-istanbul/issues/78 ([#40](https://github.com/istanbuljs/istanbul-lib-instrument/issues/40)) ([7f458a3](https://github.com/istanbuljs/istanbul-lib-instrument/commit/7f458a3)) + + + + +# [1.4.0](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.3.1...v1.4.0) (2017-01-02) + + +### Features + +* preserve inferred function names ([#38](https://github.com/istanbuljs/istanbul-lib-instrument/issues/38)) ([312666e](https://github.com/istanbuljs/istanbul-lib-instrument/commit/312666e)) + + + + +## [1.3.1](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.3.0...v1.3.1) (2016-12-27) + + +### Bug Fixes + +* function declaration assignment now retains function name ([#33](https://github.com/istanbuljs/istanbul-lib-instrument/issues/33)) ([2d781da](https://github.com/istanbuljs/istanbul-lib-instrument/commit/2d781da)) + + + + +# [1.3.0](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.2.0...v1.3.0) (2016-11-10) + + +### Features + +* allow an input source-map to be passed to instrumentSync() ([#23](https://github.com/istanbuljs/istanbul-lib-instrument/issues/23)) ([b08e4f5](https://github.com/istanbuljs/istanbul-lib-instrument/commit/b08e4f5)) + + + + +# [1.2.0](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.1.4...v1.2.0) (2016-10-25) + + +### Features + +* implement function to extract empty coverage data from an instrumented file ([#28](https://github.com/istanbuljs/istanbul-lib-instrument/issues/28)) ([06d0ef6](https://github.com/istanbuljs/istanbul-lib-instrument/commit/06d0ef6)) + + + + +## [1.1.4](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.1.3...v1.1.4) (2016-10-17) + + +### Bug Fixes + +* hoist coverage variable to very top of file ([#26](https://github.com/istanbuljs/istanbul-lib-instrument/issues/26)) ([0225e8c](https://github.com/istanbuljs/istanbul-lib-instrument/commit/0225e8c)) + + + + +## [1.1.3](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.1.2...v1.1.3) (2016-09-13) + + +### Performance Improvements + +* simplify coverage variable naming https://github.com/istanbuljs/istanbul-lib-instrument/pull/24 ([7252aae](https://github.com/istanbuljs/istanbul-lib-instrument/commit/7252aae)) + + + + +## [1.1.2](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.1.1...v1.1.2) (2016-09-08) + + +### Performance Improvements + +* use zero-based numeric indices for much faster instrumented code ([#22](https://github.com/istanbuljs/istanbul-lib-instrument/issues/22)) ([5b401f5](https://github.com/istanbuljs/istanbul-lib-instrument/commit/5b401f5)) + + + + +## [1.1.1](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.1.0...v1.1.1) (2016-08-30) + + +### Bug Fixes + +* upgrade istanbul-lib-coverage ([eb9b1f6](https://github.com/istanbuljs/istanbul-lib-instrument/commit/eb9b1f6)) + + + + +# [1.1.0](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.1.0-alpha.4...v1.1.0) (2016-08-11) + + +### Bug Fixes + +* guard against invalid loc ([#16](https://github.com/istanbuljs/istanbul-lib-instrument/issues/16)) ([23ebfc3](https://github.com/istanbuljs/istanbul-lib-instrument/commit/23ebfc3)) + + + + +# [1.1.0-alpha.4](https://github.com/istanbuljs/istanbul-lib-instrument/compare/v1.0.0-alpha.5...v1.1.0-alpha.4) (2016-07-20) + + +### Bug Fixes + +* require more performant babel-generator ([#15](https://github.com/istanbuljs/istanbul-lib-instrument/issues/15)) ([21b2563](https://github.com/istanbuljs/istanbul-lib-instrument/commit/21b2563)) diff --git a/node_modules/istanbul-lib-instrument/LICENSE b/node_modules/istanbul-lib-instrument/LICENSE new file mode 100755 index 0000000..d55d291 --- /dev/null +++ b/node_modules/istanbul-lib-instrument/LICENSE @@ -0,0 +1,24 @@ +Copyright 2012-2015 Yahoo! Inc. +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 Yahoo! Inc. 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 YAHOO! INC. 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/node_modules/istanbul-lib-instrument/README.md b/node_modules/istanbul-lib-instrument/README.md new file mode 100755 index 0000000..902831c --- /dev/null +++ b/node_modules/istanbul-lib-instrument/README.md @@ -0,0 +1,22 @@ +## istanbul-lib-instrument + +[![Build Status](https://travis-ci.org/istanbuljs/istanbul-lib-instrument.svg?branch=master)](https://travis-ci.org/istanbuljs/istanbul-lib-instrument) + +Istanbul instrumenter library. + +Version 1.1.x now implements instrumentation using `Babel`. The implementation is inspired +by prior art by @dtinth as demonstrated in the `__coverage__` babel plugin. + +It provides 2 "modes" of instrumentation. + +- The old API that is mostly unchanged (except for incompatibilities noted) and + performs the instrumentation using babel as a library. + +- A `programVisitor` function for the Babel AST that can be used by a Babel plugin + to emit instrumentation for ES6 code directly without any source map + processing. This is the preferred path for babel users. The Babel plugin is + called `babel-plugin-istanbul`. + +Incompatibilities and changes to instrumentation behavior can be found in +[v0-changes.md](v0-changes.md). + diff --git a/node_modules/istanbul-lib-instrument/package.json b/node_modules/istanbul-lib-instrument/package.json new file mode 100755 index 0000000..bcf03e2 --- /dev/null +++ b/node_modules/istanbul-lib-instrument/package.json @@ -0,0 +1,50 @@ +{ + "name": "istanbul-lib-instrument", + "version": "5.2.1", + "description": "Core istanbul API for JS code coverage", + "author": "Krishnan Anantheswaran ", + "main": "src/index.js", + "files": [ + "src" + ], + "scripts": { + "test": "nyc mocha" + }, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "devDependencies": { + "@babel/cli": "^7.7.5", + "chai": "^4.2.0", + "clone": "^2.1.2", + "debug": "^4.1.1", + "documentation": "^12.1.4", + "js-yaml": "^3.13.1", + "mocha": "^6.2.3", + "nopt": "^4.0.1", + "nyc": "^15.1.0" + }, + "license": "BSD-3-Clause", + "bugs": { + "url": "https://github.com/istanbuljs/istanbuljs/issues" + }, + "homepage": "https://istanbul.js.org/", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/istanbuljs/istanbuljs.git", + "directory": "packages/istanbul-lib-instrument" + }, + "keywords": [ + "coverage", + "istanbul", + "js", + "instrumentation" + ], + "engines": { + "node": ">=8" + } +} diff --git a/node_modules/istanbul-lib-instrument/src/constants.js b/node_modules/istanbul-lib-instrument/src/constants.js new file mode 100755 index 0000000..2cd402b --- /dev/null +++ b/node_modules/istanbul-lib-instrument/src/constants.js @@ -0,0 +1,14 @@ +const { createHash } = require('crypto'); +const { name } = require('../package.json'); +// TODO: increment this version if there are schema changes +// that are not backwards compatible: +const VERSION = '4'; + +const SHA = 'sha1'; +module.exports = { + SHA, + MAGIC_KEY: '_coverageSchema', + MAGIC_VALUE: createHash(SHA) + .update(name + '@' + VERSION) + .digest('hex') +}; diff --git a/node_modules/istanbul-lib-instrument/src/index.js b/node_modules/istanbul-lib-instrument/src/index.js new file mode 100755 index 0000000..33d2a4c --- /dev/null +++ b/node_modules/istanbul-lib-instrument/src/index.js @@ -0,0 +1,21 @@ +const { defaults } = require('@istanbuljs/schema'); +const Instrumenter = require('./instrumenter'); +const programVisitor = require('./visitor'); +const readInitialCoverage = require('./read-coverage'); + +/** + * createInstrumenter creates a new instrumenter with the + * supplied options. + * @param {Object} opts - instrumenter options. See the documentation + * for the Instrumenter class. + */ +function createInstrumenter(opts) { + return new Instrumenter(opts); +} + +module.exports = { + createInstrumenter, + programVisitor, + readInitialCoverage, + defaultOpts: defaults.instrumenter +}; diff --git a/node_modules/istanbul-lib-instrument/src/instrumenter.js b/node_modules/istanbul-lib-instrument/src/instrumenter.js new file mode 100755 index 0000000..3322e6e --- /dev/null +++ b/node_modules/istanbul-lib-instrument/src/instrumenter.js @@ -0,0 +1,162 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +const { transformSync } = require('@babel/core'); +const { defaults } = require('@istanbuljs/schema'); +const programVisitor = require('./visitor'); +const readInitialCoverage = require('./read-coverage'); + +/** + * Instrumenter is the public API for the instrument library. + * It is typically used for ES5 code. For ES6 code that you + * are already running under `babel` use the coverage plugin + * instead. + * @param {Object} opts optional. + * @param {string} [opts.coverageVariable=__coverage__] name of global coverage variable. + * @param {boolean} [opts.reportLogic=false] report boolean value of logical expressions. + * @param {boolean} [opts.preserveComments=false] preserve comments in output. + * @param {boolean} [opts.compact=true] generate compact code. + * @param {boolean} [opts.esModules=false] set to true to instrument ES6 modules. + * @param {boolean} [opts.autoWrap=false] set to true to allow `return` statements outside of functions. + * @param {boolean} [opts.produceSourceMap=false] set to true to produce a source map for the instrumented code. + * @param {Array} [opts.ignoreClassMethods=[]] set to array of class method names to ignore for coverage. + * @param {Function} [opts.sourceMapUrlCallback=null] a callback function that is called when a source map URL + * is found in the original code. This function is called with the source file name and the source map URL. + * @param {boolean} [opts.debug=false] - turn debugging on. + * @param {array} [opts.parserPlugins] - set babel parser plugins, see @istanbuljs/schema for defaults. + * @param {string} [opts.coverageGlobalScope=this] the global coverage variable scope. + * @param {boolean} [opts.coverageGlobalScopeFunc=true] use an evaluated function to find coverageGlobalScope. + */ +class Instrumenter { + constructor(opts = {}) { + this.opts = { + ...defaults.instrumenter, + ...opts + }; + this.fileCoverage = null; + this.sourceMap = null; + } + /** + * instrument the supplied code and track coverage against the supplied + * filename. It throws if invalid code is passed to it. ES5 and ES6 syntax + * is supported. To instrument ES6 modules, make sure that you set the + * `esModules` property to `true` when creating the instrumenter. + * + * @param {string} code - the code to instrument + * @param {string} filename - the filename against which to track coverage. + * @param {object} [inputSourceMap] - the source map that maps the not instrumented code back to it's original form. + * Is assigned to the coverage object and therefore, is available in the json output and can be used to remap the + * coverage to the untranspiled source. + * @returns {string} the instrumented code. + */ + instrumentSync(code, filename, inputSourceMap) { + if (typeof code !== 'string') { + throw new Error('Code must be a string'); + } + filename = filename || String(new Date().getTime()) + '.js'; + const { opts } = this; + let output = {}; + const babelOpts = { + configFile: false, + babelrc: false, + ast: true, + filename: filename || String(new Date().getTime()) + '.js', + inputSourceMap, + sourceMaps: opts.produceSourceMap, + compact: opts.compact, + comments: opts.preserveComments, + parserOpts: { + allowReturnOutsideFunction: opts.autoWrap, + sourceType: opts.esModules ? 'module' : 'script', + plugins: opts.parserPlugins + }, + plugins: [ + [ + ({ types }) => { + const ee = programVisitor(types, filename, { + coverageVariable: opts.coverageVariable, + reportLogic: opts.reportLogic, + coverageGlobalScope: opts.coverageGlobalScope, + coverageGlobalScopeFunc: + opts.coverageGlobalScopeFunc, + ignoreClassMethods: opts.ignoreClassMethods, + inputSourceMap + }); + + return { + visitor: { + Program: { + enter: ee.enter, + exit(path) { + output = ee.exit(path); + } + } + } + }; + } + ] + ] + }; + + const codeMap = transformSync(code, babelOpts); + + if (!output || !output.fileCoverage) { + const initialCoverage = + readInitialCoverage(codeMap.ast) || + /* istanbul ignore next: paranoid check */ {}; + this.fileCoverage = initialCoverage.coverageData; + this.sourceMap = inputSourceMap; + return code; + } + + this.fileCoverage = output.fileCoverage; + this.sourceMap = codeMap.map; + const cb = this.opts.sourceMapUrlCallback; + if (cb && output.sourceMappingURL) { + cb(filename, output.sourceMappingURL); + } + + return codeMap.code; + } + /** + * callback-style instrument method that calls back with an error + * as opposed to throwing one. Note that in the current implementation, + * the callback will be called in the same process tick and is not asynchronous. + * + * @param {string} code - the code to instrument + * @param {string} filename - the filename against which to track coverage. + * @param {Function} callback - the callback + * @param {Object} inputSourceMap - the source map that maps the not instrumented code back to it's original form. + * Is assigned to the coverage object and therefore, is available in the json output and can be used to remap the + * coverage to the untranspiled source. + */ + instrument(code, filename, callback, inputSourceMap) { + if (!callback && typeof filename === 'function') { + callback = filename; + filename = null; + } + try { + const out = this.instrumentSync(code, filename, inputSourceMap); + callback(null, out); + } catch (ex) { + callback(ex); + } + } + /** + * returns the file coverage object for the last file instrumented. + * @returns {Object} the file coverage object. + */ + lastFileCoverage() { + return this.fileCoverage; + } + /** + * returns the source map produced for the last file instrumented. + * @returns {null|Object} the source map object. + */ + lastSourceMap() { + return this.sourceMap; + } +} + +module.exports = Instrumenter; diff --git a/node_modules/istanbul-lib-instrument/src/read-coverage.js b/node_modules/istanbul-lib-instrument/src/read-coverage.js new file mode 100755 index 0000000..5b76dbb --- /dev/null +++ b/node_modules/istanbul-lib-instrument/src/read-coverage.js @@ -0,0 +1,77 @@ +const { parseSync, traverse } = require('@babel/core'); +const { defaults } = require('@istanbuljs/schema'); +const { MAGIC_KEY, MAGIC_VALUE } = require('./constants'); + +function getAst(code) { + if (typeof code === 'object' && typeof code.type === 'string') { + // Assume code is already a babel ast. + return code; + } + + if (typeof code !== 'string') { + throw new Error('Code must be a string'); + } + + // Parse as leniently as possible + return parseSync(code, { + babelrc: false, + configFile: false, + parserOpts: { + allowAwaitOutsideFunction: true, + allowImportExportEverywhere: true, + allowReturnOutsideFunction: true, + allowSuperOutsideMethod: true, + sourceType: 'script', + plugins: defaults.instrumenter.parserPlugins + } + }); +} + +module.exports = function readInitialCoverage(code) { + const ast = getAst(code); + + let covScope; + traverse(ast, { + ObjectProperty(path) { + const { node } = path; + if ( + !node.computed && + path.get('key').isIdentifier() && + node.key.name === MAGIC_KEY + ) { + const magicValue = path.get('value').evaluate(); + if (!magicValue.confident || magicValue.value !== MAGIC_VALUE) { + return; + } + covScope = + path.scope.getFunctionParent() || + path.scope.getProgramParent(); + path.stop(); + } + } + }); + + if (!covScope) { + return null; + } + + const result = {}; + + for (const key of ['path', 'hash', 'gcv', 'coverageData']) { + const binding = covScope.getOwnBinding(key); + if (!binding) { + return null; + } + const valuePath = binding.path.get('init'); + const value = valuePath.evaluate(); + if (!value.confident) { + return null; + } + result[key] = value.value; + } + + delete result.coverageData[MAGIC_KEY]; + delete result.coverageData.hash; + + return result; +}; diff --git a/node_modules/istanbul-lib-instrument/src/source-coverage.js b/node_modules/istanbul-lib-instrument/src/source-coverage.js new file mode 100755 index 0000000..ec3f234 --- /dev/null +++ b/node_modules/istanbul-lib-instrument/src/source-coverage.js @@ -0,0 +1,135 @@ +const { classes } = require('istanbul-lib-coverage'); + +function cloneLocation(loc) { + return { + start: { + line: loc && loc.start.line, + column: loc && loc.start.column + }, + end: { + line: loc && loc.end.line, + column: loc && loc.end.column + } + }; +} +/** + * SourceCoverage provides mutation methods to manipulate the structure of + * a file coverage object. Used by the instrumenter to create a full coverage + * object for a file incrementally. + * + * @private + * @param pathOrObj {String|Object} - see the argument for {@link FileCoverage} + * @extends FileCoverage + * @constructor + */ +class SourceCoverage extends classes.FileCoverage { + constructor(pathOrObj) { + super(pathOrObj); + this.meta = { + last: { + s: 0, + f: 0, + b: 0 + } + }; + } + + newStatement(loc) { + const s = this.meta.last.s; + this.data.statementMap[s] = cloneLocation(loc); + this.data.s[s] = 0; + this.meta.last.s += 1; + return s; + } + + newFunction(name, decl, loc) { + const f = this.meta.last.f; + name = name || '(anonymous_' + f + ')'; + this.data.fnMap[f] = { + name, + decl: cloneLocation(decl), + loc: cloneLocation(loc), + // DEPRECATED: some legacy reports require this info. + line: loc && loc.start.line + }; + this.data.f[f] = 0; + this.meta.last.f += 1; + return f; + } + + newBranch(type, loc, isReportLogic = false) { + const b = this.meta.last.b; + this.data.b[b] = []; + this.data.branchMap[b] = { + loc: cloneLocation(loc), + type, + locations: [], + // DEPRECATED: some legacy reports require this info. + line: loc && loc.start.line + }; + this.meta.last.b += 1; + this.maybeNewBranchTrue(type, b, isReportLogic); + return b; + } + + maybeNewBranchTrue(type, name, isReportLogic) { + if (!isReportLogic) { + return; + } + if (type !== 'binary-expr') { + return; + } + this.data.bT = this.data.bT || {}; + this.data.bT[name] = []; + } + + addBranchPath(name, location) { + const bMeta = this.data.branchMap[name]; + const counts = this.data.b[name]; + + /* istanbul ignore if: paranoid check */ + if (!bMeta) { + throw new Error('Invalid branch ' + name); + } + bMeta.locations.push(cloneLocation(location)); + counts.push(0); + this.maybeAddBranchTrue(name); + return counts.length - 1; + } + + maybeAddBranchTrue(name) { + if (!this.data.bT) { + return; + } + const countsTrue = this.data.bT[name]; + if (!countsTrue) { + return; + } + countsTrue.push(0); + } + + /** + * Assigns an input source map to the coverage that can be used + * to remap the coverage output to the original source + * @param sourceMap {object} the source map + */ + inputSourceMap(sourceMap) { + this.data.inputSourceMap = sourceMap; + } + + freeze() { + // prune empty branches + const map = this.data.branchMap; + const branches = this.data.b; + const branchesT = this.data.bT || {}; + Object.keys(map).forEach(b => { + if (map[b].locations.length === 0) { + delete map[b]; + delete branches[b]; + delete branchesT[b]; + } + }); + } +} + +module.exports = { SourceCoverage }; diff --git a/node_modules/istanbul-lib-instrument/src/visitor.js b/node_modules/istanbul-lib-instrument/src/visitor.js new file mode 100755 index 0000000..46c7129 --- /dev/null +++ b/node_modules/istanbul-lib-instrument/src/visitor.js @@ -0,0 +1,843 @@ +const { createHash } = require('crypto'); +const { template } = require('@babel/core'); +const { defaults } = require('@istanbuljs/schema'); +const { SourceCoverage } = require('./source-coverage'); +const { SHA, MAGIC_KEY, MAGIC_VALUE } = require('./constants'); + +// pattern for istanbul to ignore a section +const COMMENT_RE = /^\s*istanbul\s+ignore\s+(if|else|next)(?=\W|$)/; +// pattern for istanbul to ignore the whole file +const COMMENT_FILE_RE = /^\s*istanbul\s+ignore\s+(file)(?=\W|$)/; +// source map URL pattern +const SOURCE_MAP_RE = /[#@]\s*sourceMappingURL=(.*)\s*$/m; + +// generate a variable name from hashing the supplied file path +function genVar(filename) { + const hash = createHash(SHA); + hash.update(filename); + return 'cov_' + parseInt(hash.digest('hex').substr(0, 12), 16).toString(36); +} + +// VisitState holds the state of the visitor, provides helper functions +// and is the `this` for the individual coverage visitors. +class VisitState { + constructor( + types, + sourceFilePath, + inputSourceMap, + ignoreClassMethods = [], + reportLogic = false + ) { + this.varName = genVar(sourceFilePath); + this.attrs = {}; + this.nextIgnore = null; + this.cov = new SourceCoverage(sourceFilePath); + + if (typeof inputSourceMap !== 'undefined') { + this.cov.inputSourceMap(inputSourceMap); + } + this.ignoreClassMethods = ignoreClassMethods; + this.types = types; + this.sourceMappingURL = null; + this.reportLogic = reportLogic; + } + + // should we ignore the node? Yes, if specifically ignoring + // or if the node is generated. + shouldIgnore(path) { + return this.nextIgnore || !path.node.loc; + } + + // extract the ignore comment hint (next|if|else) or null + hintFor(node) { + let hint = null; + if (node.leadingComments) { + node.leadingComments.forEach(c => { + const v = ( + c.value || /* istanbul ignore next: paranoid check */ '' + ).trim(); + const groups = v.match(COMMENT_RE); + if (groups) { + hint = groups[1]; + } + }); + } + return hint; + } + + // extract a source map URL from comments and keep track of it + maybeAssignSourceMapURL(node) { + const extractURL = comments => { + if (!comments) { + return; + } + comments.forEach(c => { + const v = ( + c.value || /* istanbul ignore next: paranoid check */ '' + ).trim(); + const groups = v.match(SOURCE_MAP_RE); + if (groups) { + this.sourceMappingURL = groups[1]; + } + }); + }; + extractURL(node.leadingComments); + extractURL(node.trailingComments); + } + + // for these expressions the statement counter needs to be hoisted, so + // function name inference can be preserved + counterNeedsHoisting(path) { + return ( + path.isFunctionExpression() || + path.isArrowFunctionExpression() || + path.isClassExpression() + ); + } + + // all the generic stuff that needs to be done on enter for every node + onEnter(path) { + const n = path.node; + + this.maybeAssignSourceMapURL(n); + + // if already ignoring, nothing more to do + if (this.nextIgnore !== null) { + return; + } + // check hint to see if ignore should be turned on + const hint = this.hintFor(n); + if (hint === 'next') { + this.nextIgnore = n; + return; + } + // else check custom node attribute set by a prior visitor + if (this.getAttr(path.node, 'skip-all') !== null) { + this.nextIgnore = n; + } + + // else check for ignored class methods + if ( + path.isFunctionExpression() && + this.ignoreClassMethods.some( + name => path.node.id && name === path.node.id.name + ) + ) { + this.nextIgnore = n; + return; + } + if ( + path.isClassMethod() && + this.ignoreClassMethods.some(name => name === path.node.key.name) + ) { + this.nextIgnore = n; + return; + } + } + + // all the generic stuff on exit of a node, + // including reseting ignores and custom node attrs + onExit(path) { + // restore ignore status, if needed + if (path.node === this.nextIgnore) { + this.nextIgnore = null; + } + // nuke all attributes for the node + delete path.node.__cov__; + } + + // set a node attribute for the supplied node + setAttr(node, name, value) { + node.__cov__ = node.__cov__ || {}; + node.__cov__[name] = value; + } + + // retrieve a node attribute for the supplied node or null + getAttr(node, name) { + const c = node.__cov__; + if (!c) { + return null; + } + return c[name]; + } + + // + increase(type, id, index) { + const T = this.types; + const wrap = + index !== null + ? // If `index` present, turn `x` into `x[index]`. + x => T.memberExpression(x, T.numericLiteral(index), true) + : x => x; + return T.updateExpression( + '++', + wrap( + T.memberExpression( + T.memberExpression( + T.callExpression(T.identifier(this.varName), []), + T.identifier(type) + ), + T.numericLiteral(id), + true + ) + ) + ); + } + + // Reads the logic expression conditions and conditionally increments truthy counter. + increaseTrue(type, id, index, node) { + const T = this.types; + const tempName = `${this.varName}_temp`; + + return T.sequenceExpression([ + T.assignmentExpression( + '=', + T.memberExpression( + T.callExpression(T.identifier(this.varName), []), + T.identifier(tempName) + ), + node // Only evaluates once. + ), + T.parenthesizedExpression( + T.conditionalExpression( + this.validateTrueNonTrivial(T, tempName), + this.increase(type, id, index), + T.nullLiteral() + ) + ), + T.memberExpression( + T.callExpression(T.identifier(this.varName), []), + T.identifier(tempName) + ) + ]); + } + + validateTrueNonTrivial(T, tempName) { + return T.logicalExpression( + '&&', + T.memberExpression( + T.callExpression(T.identifier(this.varName), []), + T.identifier(tempName) + ), + T.logicalExpression( + '&&', + T.parenthesizedExpression( + T.logicalExpression( + '||', + T.unaryExpression( + '!', + T.callExpression( + T.memberExpression( + T.identifier('Array'), + T.identifier('isArray') + ), + [ + T.memberExpression( + T.callExpression( + T.identifier(this.varName), + [] + ), + T.identifier(tempName) + ) + ] + ) + ), + T.memberExpression( + T.memberExpression( + T.callExpression( + T.identifier(this.varName), + [] + ), + T.identifier(tempName) + ), + T.identifier('length') + ) + ) + ), + T.parenthesizedExpression( + T.logicalExpression( + '||', + T.binaryExpression( + '!==', + T.callExpression( + T.memberExpression( + T.identifier('Object'), + T.identifier('getPrototypeOf') + ), + [ + T.memberExpression( + T.callExpression( + T.identifier(this.varName), + [] + ), + T.identifier(tempName) + ) + ] + ), + T.memberExpression( + T.identifier('Object'), + T.identifier('prototype') + ) + ), + T.memberExpression( + T.callExpression( + T.memberExpression( + T.identifier('Object'), + T.identifier('values') + ), + [ + T.memberExpression( + T.callExpression( + T.identifier(this.varName), + [] + ), + T.identifier(tempName) + ) + ] + ), + T.identifier('length') + ) + ) + ) + ) + ); + } + + insertCounter(path, increment) { + const T = this.types; + if (path.isBlockStatement()) { + path.node.body.unshift(T.expressionStatement(increment)); + } else if (path.isStatement()) { + path.insertBefore(T.expressionStatement(increment)); + } else if ( + this.counterNeedsHoisting(path) && + T.isVariableDeclarator(path.parentPath) + ) { + // make an attempt to hoist the statement counter, so that + // function names are maintained. + const parent = path.parentPath.parentPath; + if (parent && T.isExportNamedDeclaration(parent.parentPath)) { + parent.parentPath.insertBefore( + T.expressionStatement(increment) + ); + } else if ( + parent && + (T.isProgram(parent.parentPath) || + T.isBlockStatement(parent.parentPath)) + ) { + parent.insertBefore(T.expressionStatement(increment)); + } else { + path.replaceWith(T.sequenceExpression([increment, path.node])); + } + } /* istanbul ignore else: not expected */ else if ( + path.isExpression() + ) { + path.replaceWith(T.sequenceExpression([increment, path.node])); + } else { + console.error( + 'Unable to insert counter for node type:', + path.node.type + ); + } + } + + insertStatementCounter(path) { + /* istanbul ignore if: paranoid check */ + if (!(path.node && path.node.loc)) { + return; + } + const index = this.cov.newStatement(path.node.loc); + const increment = this.increase('s', index, null); + this.insertCounter(path, increment); + } + + insertFunctionCounter(path) { + const T = this.types; + /* istanbul ignore if: paranoid check */ + if (!(path.node && path.node.loc)) { + return; + } + const n = path.node; + + let dloc = null; + // get location for declaration + switch (n.type) { + case 'FunctionDeclaration': + case 'FunctionExpression': + /* istanbul ignore else: paranoid check */ + if (n.id) { + dloc = n.id.loc; + } + break; + } + if (!dloc) { + dloc = { + start: n.loc.start, + end: { line: n.loc.start.line, column: n.loc.start.column + 1 } + }; + } + + const name = path.node.id ? path.node.id.name : path.node.name; + const index = this.cov.newFunction(name, dloc, path.node.body.loc); + const increment = this.increase('f', index, null); + const body = path.get('body'); + /* istanbul ignore else: not expected */ + if (body.isBlockStatement()) { + body.node.body.unshift(T.expressionStatement(increment)); + } else { + console.error( + 'Unable to process function body node type:', + path.node.type + ); + } + } + + getBranchIncrement(branchName, loc) { + const index = this.cov.addBranchPath(branchName, loc); + return this.increase('b', branchName, index); + } + + getBranchLogicIncrement(path, branchName, loc) { + const index = this.cov.addBranchPath(branchName, loc); + return [ + this.increase('b', branchName, index), + this.increaseTrue('bT', branchName, index, path.node) + ]; + } + + insertBranchCounter(path, branchName, loc) { + const increment = this.getBranchIncrement( + branchName, + loc || path.node.loc + ); + this.insertCounter(path, increment); + } + + findLeaves(node, accumulator, parent, property) { + if (!node) { + return; + } + if (node.type === 'LogicalExpression') { + const hint = this.hintFor(node); + if (hint !== 'next') { + this.findLeaves(node.left, accumulator, node, 'left'); + this.findLeaves(node.right, accumulator, node, 'right'); + } + } else { + accumulator.push({ + node, + parent, + property + }); + } + } +} + +// generic function that takes a set of visitor methods and +// returns a visitor object with `enter` and `exit` properties, +// such that: +// +// * standard entry processing is done +// * the supplied visitors are called only when ignore is not in effect +// This relieves them from worrying about ignore states and generated nodes. +// * standard exit processing is done +// +function entries(...enter) { + // the enter function + const wrappedEntry = function(path, node) { + this.onEnter(path); + if (this.shouldIgnore(path)) { + return; + } + enter.forEach(e => { + e.call(this, path, node); + }); + }; + const exit = function(path, node) { + this.onExit(path, node); + }; + return { + enter: wrappedEntry, + exit + }; +} + +function coverStatement(path) { + this.insertStatementCounter(path); +} + +/* istanbul ignore next: no node.js support */ +function coverAssignmentPattern(path) { + const n = path.node; + const b = this.cov.newBranch('default-arg', n.loc); + this.insertBranchCounter(path.get('right'), b); +} + +function coverFunction(path) { + this.insertFunctionCounter(path); +} + +function coverVariableDeclarator(path) { + this.insertStatementCounter(path.get('init')); +} + +function coverClassPropDeclarator(path) { + this.insertStatementCounter(path.get('value')); +} + +function makeBlock(path) { + const T = this.types; + if (!path.node) { + path.replaceWith(T.blockStatement([])); + } + if (!path.isBlockStatement()) { + path.replaceWith(T.blockStatement([path.node])); + path.node.loc = path.node.body[0].loc; + path.node.body[0].leadingComments = path.node.leadingComments; + path.node.leadingComments = undefined; + } +} + +function blockProp(prop) { + return function(path) { + makeBlock.call(this, path.get(prop)); + }; +} + +function makeParenthesizedExpressionForNonIdentifier(path) { + const T = this.types; + if (path.node && !path.isIdentifier()) { + path.replaceWith(T.parenthesizedExpression(path.node)); + } +} + +function parenthesizedExpressionProp(prop) { + return function(path) { + makeParenthesizedExpressionForNonIdentifier.call(this, path.get(prop)); + }; +} + +function convertArrowExpression(path) { + const n = path.node; + const T = this.types; + if (!T.isBlockStatement(n.body)) { + const bloc = n.body.loc; + if (n.expression === true) { + n.expression = false; + } + n.body = T.blockStatement([T.returnStatement(n.body)]); + // restore body location + n.body.loc = bloc; + // set up the location for the return statement so it gets + // instrumented + n.body.body[0].loc = bloc; + } +} + +function coverIfBranches(path) { + const n = path.node; + const hint = this.hintFor(n); + const ignoreIf = hint === 'if'; + const ignoreElse = hint === 'else'; + const branch = this.cov.newBranch('if', n.loc); + + if (ignoreIf) { + this.setAttr(n.consequent, 'skip-all', true); + } else { + this.insertBranchCounter(path.get('consequent'), branch, n.loc); + } + if (ignoreElse) { + this.setAttr(n.alternate, 'skip-all', true); + } else { + this.insertBranchCounter(path.get('alternate'), branch); + } +} + +function createSwitchBranch(path) { + const b = this.cov.newBranch('switch', path.node.loc); + this.setAttr(path.node, 'branchName', b); +} + +function coverSwitchCase(path) { + const T = this.types; + const b = this.getAttr(path.parentPath.node, 'branchName'); + /* istanbul ignore if: paranoid check */ + if (b === null) { + throw new Error('Unable to get switch branch name'); + } + const increment = this.getBranchIncrement(b, path.node.loc); + path.node.consequent.unshift(T.expressionStatement(increment)); +} + +function coverTernary(path) { + const n = path.node; + const branch = this.cov.newBranch('cond-expr', path.node.loc); + const cHint = this.hintFor(n.consequent); + const aHint = this.hintFor(n.alternate); + + if (cHint !== 'next') { + this.insertBranchCounter(path.get('consequent'), branch); + } + if (aHint !== 'next') { + this.insertBranchCounter(path.get('alternate'), branch); + } +} + +function coverLogicalExpression(path) { + const T = this.types; + if (path.parentPath.node.type === 'LogicalExpression') { + return; // already processed + } + const leaves = []; + this.findLeaves(path.node, leaves); + const b = this.cov.newBranch( + 'binary-expr', + path.node.loc, + this.reportLogic + ); + for (let i = 0; i < leaves.length; i += 1) { + const leaf = leaves[i]; + const hint = this.hintFor(leaf.node); + if (hint === 'next') { + continue; + } + + if (this.reportLogic) { + const increment = this.getBranchLogicIncrement( + leaf, + b, + leaf.node.loc + ); + if (!increment[0]) { + continue; + } + leaf.parent[leaf.property] = T.sequenceExpression([ + increment[0], + increment[1] + ]); + continue; + } + + const increment = this.getBranchIncrement(b, leaf.node.loc); + if (!increment) { + continue; + } + leaf.parent[leaf.property] = T.sequenceExpression([ + increment, + leaf.node + ]); + } +} + +const codeVisitor = { + ArrowFunctionExpression: entries(convertArrowExpression, coverFunction), + AssignmentPattern: entries(coverAssignmentPattern), + BlockStatement: entries(), // ignore processing only + ExportDefaultDeclaration: entries(), // ignore processing only + ExportNamedDeclaration: entries(), // ignore processing only + ClassMethod: entries(coverFunction), + ClassDeclaration: entries(parenthesizedExpressionProp('superClass')), + ClassProperty: entries(coverClassPropDeclarator), + ClassPrivateProperty: entries(coverClassPropDeclarator), + ObjectMethod: entries(coverFunction), + ExpressionStatement: entries(coverStatement), + BreakStatement: entries(coverStatement), + ContinueStatement: entries(coverStatement), + DebuggerStatement: entries(coverStatement), + ReturnStatement: entries(coverStatement), + ThrowStatement: entries(coverStatement), + TryStatement: entries(coverStatement), + VariableDeclaration: entries(), // ignore processing only + VariableDeclarator: entries(coverVariableDeclarator), + IfStatement: entries( + blockProp('consequent'), + blockProp('alternate'), + coverStatement, + coverIfBranches + ), + ForStatement: entries(blockProp('body'), coverStatement), + ForInStatement: entries(blockProp('body'), coverStatement), + ForOfStatement: entries(blockProp('body'), coverStatement), + WhileStatement: entries(blockProp('body'), coverStatement), + DoWhileStatement: entries(blockProp('body'), coverStatement), + SwitchStatement: entries(createSwitchBranch, coverStatement), + SwitchCase: entries(coverSwitchCase), + WithStatement: entries(blockProp('body'), coverStatement), + FunctionDeclaration: entries(coverFunction), + FunctionExpression: entries(coverFunction), + LabeledStatement: entries(coverStatement), + ConditionalExpression: entries(coverTernary), + LogicalExpression: entries(coverLogicalExpression) +}; +const globalTemplateAlteredFunction = template(` + var Function = (function(){}).constructor; + var global = (new Function(GLOBAL_COVERAGE_SCOPE))(); +`); +const globalTemplateFunction = template(` + var global = (new Function(GLOBAL_COVERAGE_SCOPE))(); +`); +const globalTemplateVariable = template(` + var global = GLOBAL_COVERAGE_SCOPE; +`); +// the template to insert at the top of the program. +const coverageTemplate = template( + ` + function COVERAGE_FUNCTION () { + var path = PATH; + var hash = HASH; + GLOBAL_COVERAGE_TEMPLATE + var gcv = GLOBAL_COVERAGE_VAR; + var coverageData = INITIAL; + var coverage = global[gcv] || (global[gcv] = {}); + if (!coverage[path] || coverage[path].hash !== hash) { + coverage[path] = coverageData; + } + + var actualCoverage = coverage[path]; + { + // @ts-ignore + COVERAGE_FUNCTION = function () { + return actualCoverage; + } + } + + return actualCoverage; + } +`, + { preserveComments: true } +); +// the rewire plugin (and potentially other babel middleware) +// may cause files to be instrumented twice, see: +// https://github.com/istanbuljs/babel-plugin-istanbul/issues/94 +// we should only instrument code for coverage the first time +// it's run through istanbul-lib-instrument. +function alreadyInstrumented(path, visitState) { + return path.scope.hasBinding(visitState.varName); +} +function shouldIgnoreFile(programNode) { + return ( + programNode.parent && + programNode.parent.comments.some(c => COMMENT_FILE_RE.test(c.value)) + ); +} + +/** + * programVisitor is a `babel` adaptor for instrumentation. + * It returns an object with two methods `enter` and `exit`. + * These should be assigned to or called from `Program` entry and exit functions + * in a babel visitor. + * These functions do not make assumptions about the state set by Babel and thus + * can be used in a context other than a Babel plugin. + * + * The exit function returns an object that currently has the following keys: + * + * `fileCoverage` - the file coverage object created for the source file. + * `sourceMappingURL` - any source mapping URL found when processing the file. + * + * @param {Object} types - an instance of babel-types. + * @param {string} sourceFilePath - the path to source file. + * @param {Object} opts - additional options. + * @param {string} [opts.coverageVariable=__coverage__] the global coverage variable name. + * @param {boolean} [opts.reportLogic=false] report boolean value of logical expressions. + * @param {string} [opts.coverageGlobalScope=this] the global coverage variable scope. + * @param {boolean} [opts.coverageGlobalScopeFunc=true] use an evaluated function to find coverageGlobalScope. + * @param {Array} [opts.ignoreClassMethods=[]] names of methods to ignore by default on classes. + * @param {object} [opts.inputSourceMap=undefined] the input source map, that maps the uninstrumented code back to the + * original code. + */ +function programVisitor(types, sourceFilePath = 'unknown.js', opts = {}) { + const T = types; + opts = { + ...defaults.instrumentVisitor, + ...opts + }; + const visitState = new VisitState( + types, + sourceFilePath, + opts.inputSourceMap, + opts.ignoreClassMethods, + opts.reportLogic + ); + return { + enter(path) { + if (shouldIgnoreFile(path.find(p => p.isProgram()))) { + return; + } + if (alreadyInstrumented(path, visitState)) { + return; + } + path.traverse(codeVisitor, visitState); + }, + exit(path) { + if (alreadyInstrumented(path, visitState)) { + return; + } + visitState.cov.freeze(); + const coverageData = visitState.cov.toJSON(); + if (shouldIgnoreFile(path.find(p => p.isProgram()))) { + return { + fileCoverage: coverageData, + sourceMappingURL: visitState.sourceMappingURL + }; + } + coverageData[MAGIC_KEY] = MAGIC_VALUE; + const hash = createHash(SHA) + .update(JSON.stringify(coverageData)) + .digest('hex'); + coverageData.hash = hash; + if ( + coverageData.inputSourceMap && + Object.getPrototypeOf(coverageData.inputSourceMap) !== + Object.prototype + ) { + coverageData.inputSourceMap = { + ...coverageData.inputSourceMap + }; + } + const coverageNode = T.valueToNode(coverageData); + delete coverageData[MAGIC_KEY]; + delete coverageData.hash; + let gvTemplate; + if (opts.coverageGlobalScopeFunc) { + if (path.scope.getBinding('Function')) { + gvTemplate = globalTemplateAlteredFunction({ + GLOBAL_COVERAGE_SCOPE: T.stringLiteral( + 'return ' + opts.coverageGlobalScope + ) + }); + } else { + gvTemplate = globalTemplateFunction({ + GLOBAL_COVERAGE_SCOPE: T.stringLiteral( + 'return ' + opts.coverageGlobalScope + ) + }); + } + } else { + gvTemplate = globalTemplateVariable({ + GLOBAL_COVERAGE_SCOPE: opts.coverageGlobalScope + }); + } + const cv = coverageTemplate({ + GLOBAL_COVERAGE_VAR: T.stringLiteral(opts.coverageVariable), + GLOBAL_COVERAGE_TEMPLATE: gvTemplate, + COVERAGE_FUNCTION: T.identifier(visitState.varName), + PATH: T.stringLiteral(sourceFilePath), + INITIAL: coverageNode, + HASH: T.stringLiteral(hash) + }); + // explicitly call this.varName to ensure coverage is always initialized + path.node.body.unshift( + T.expressionStatement( + T.callExpression(T.identifier(visitState.varName), []) + ) + ); + path.node.body.unshift(cv); + return { + fileCoverage: coverageData, + sourceMappingURL: visitState.sourceMappingURL + }; + } + }; +} + +module.exports = programVisitor; diff --git a/node_modules/istanbul-lib-report/CHANGELOG.md b/node_modules/istanbul-lib-report/CHANGELOG.md new file mode 100755 index 0000000..3578bb5 --- /dev/null +++ b/node_modules/istanbul-lib-report/CHANGELOG.md @@ -0,0 +1,185 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [3.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@3.0.0-alpha.2...istanbul-lib-report@3.0.0) (2019-12-20) + +**Note:** Version bump only for package istanbul-lib-report + + + + + +# [3.0.0-alpha.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@3.0.0-alpha.1...istanbul-lib-report@3.0.0-alpha.2) (2019-12-07) + +**Note:** Version bump only for package istanbul-lib-report + + + + + +# [3.0.0-alpha.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@3.0.0-alpha.0...istanbul-lib-report@3.0.0-alpha.1) (2019-10-06) + +**Note:** Version bump only for package istanbul-lib-report + + + + + +# [3.0.0-alpha.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.8...istanbul-lib-report@3.0.0-alpha.0) (2019-06-19) + + +### Bug Fixes + +* **package:** update supports-color to version 7.0.0 ([#420](https://github.com/istanbuljs/istanbuljs/issues/420)) ([631029d](https://github.com/istanbuljs/istanbuljs/commit/631029d)) +* Properly combine directories in nested summarizer ([#380](https://github.com/istanbuljs/istanbuljs/issues/380)) ([50afdbb](https://github.com/istanbuljs/istanbuljs/commit/50afdbb)) + + +### Features + +* Refactor istanbul-lib-report so report can choose summarizer ([#408](https://github.com/istanbuljs/istanbuljs/issues/408)) ([0f328fd](https://github.com/istanbuljs/istanbuljs/commit/0f328fd)) +* Update dependencies, require Node.js 8 ([#401](https://github.com/istanbuljs/istanbuljs/issues/401)) ([bf3a539](https://github.com/istanbuljs/istanbuljs/commit/bf3a539)) + + +### BREAKING CHANGES + +* Existing istanbul-lib-report API's have been changed +* Node.js 8 is now required + + + + + +## [2.0.8](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.7...istanbul-lib-report@2.0.8) (2019-04-24) + +**Note:** Version bump only for package istanbul-lib-report + + + + + +## [2.0.7](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.6...istanbul-lib-report@2.0.7) (2019-04-09) + +**Note:** Version bump only for package istanbul-lib-report + + + + + +## [2.0.6](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.5...istanbul-lib-report@2.0.6) (2019-04-03) + + +### Bug Fixes + +* Avoid corrupting HTML report's arrow png during copy ([#343](https://github.com/istanbuljs/istanbuljs/issues/343)) ([ce664c7](https://github.com/istanbuljs/istanbuljs/commit/ce664c7)) + + + + + +## [2.0.5](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.4...istanbul-lib-report@2.0.5) (2019-03-12) + +**Note:** Version bump only for package istanbul-lib-report + + + + + +## [2.0.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.3...istanbul-lib-report@2.0.4) (2019-01-26) + + +### Bug Fixes + +* nested summarizer error with no files ([#230](https://github.com/istanbuljs/istanbuljs/issues/230)) ([07724bf](https://github.com/istanbuljs/istanbuljs/commit/07724bf)) + + + + + + +## [2.0.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.2...istanbul-lib-report@2.0.3) (2018-12-25) + + + + +**Note:** Version bump only for package istanbul-lib-report + + +## [2.0.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.1...istanbul-lib-report@2.0.2) (2018-09-06) + + + + +**Note:** Version bump only for package istanbul-lib-report + + +## [2.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@2.0.0...istanbul-lib-report@2.0.1) (2018-07-07) + + + + +**Note:** Version bump only for package istanbul-lib-report + + +# [2.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@1.1.4...istanbul-lib-report@2.0.0) (2018-06-06) + + +### Bug Fixes + +* use null prototype for map objects ([#177](https://github.com/istanbuljs/istanbuljs/issues/177)) ([9a5a30c](https://github.com/istanbuljs/istanbuljs/commit/9a5a30c)) + + +### BREAKING CHANGES + +* a null prototype is now used in several places rather than the default `{}` assignment. + + + + + +## [1.1.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@1.1.3...istanbul-lib-report@1.1.4) (2018-03-04) + + + + +**Note:** Version bump only for package istanbul-lib-report + + +## [1.1.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@1.1.2...istanbul-lib-report@1.1.3) (2018-02-13) + + + + +**Note:** Version bump only for package istanbul-lib-report + + +## [1.1.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@1.1.1...istanbul-lib-report@1.1.2) (2017-10-21) + + +### Bug Fixes + +* remove call to mkdirp.sync() in constructor so when used for ConsoleWriter ([#104](https://github.com/istanbuljs/istanbuljs/issues/104)) ([58eb79d](https://github.com/istanbuljs/istanbuljs/commit/58eb79d)) + + + + + +## [1.1.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@1.1.0...istanbul-lib-report@1.1.1) (2017-05-27) + + + + + +# [1.1.0](https://github.com/istanbuljs/istanbul-lib-report/compare/istanbul-lib-report@1.0.0...istanbul-lib-report@1.1.0) (2017-04-29) + + +### Features + +* once 100% line coverage is achieved, missing branch coverage is now shown in text report ([#45](https://github.com/istanbuljs/istanbuljs/issues/45)) ([8a809f8](https://github.com/istanbuljs/istanbul-lib-report/commit/8a809f8)) + + + + + +# [1.0.0](https://github.com/istanbuljs/istanbul-lib-report/compare/istanbul-lib-report@1.0.0-alpha.3...istanbul-lib-report@1.0.0) (2017-03-27) diff --git a/node_modules/istanbul-lib-report/LICENSE b/node_modules/istanbul-lib-report/LICENSE new file mode 100755 index 0000000..d55d291 --- /dev/null +++ b/node_modules/istanbul-lib-report/LICENSE @@ -0,0 +1,24 @@ +Copyright 2012-2015 Yahoo! Inc. +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 Yahoo! Inc. 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 YAHOO! INC. 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/node_modules/istanbul-lib-report/README.md b/node_modules/istanbul-lib-report/README.md new file mode 100755 index 0000000..f7ff56a --- /dev/null +++ b/node_modules/istanbul-lib-report/README.md @@ -0,0 +1,43 @@ +# istanbul-lib-report + +[![Greenkeeper badge](https://badges.greenkeeper.io/istanbuljs/istanbul-lib-report.svg)](https://greenkeeper.io/) +[![Build Status](https://travis-ci.org/istanbuljs/istanbul-lib-report.svg?branch=master)](https://travis-ci.org/istanbuljs/istanbul-lib-report) + +Core reporting utilities for istanbul. + +## Example usage + +```js +const libReport = require('istanbul-lib-report'); +const reports = require('istanbul-reports'); + +// coverageMap, for instance, obtained from istanbul-lib-coverage +const coverageMap; + +const configWatermarks = { + statements: [50, 80], + functions: [50, 80], + branches: [50, 80], + lines: [50, 80] +}; + +// create a context for report generation +const context = libReport.createContext({ + dir: 'report/output/dir', + // The summarizer to default to (may be overridden by some reports) + // values can be nested/flat/pkg. Defaults to 'pkg' + defaultSummarizer: 'nested', + watermarks: configWatermarks, + coverageMap, +}) + +// create an instance of the relevant report class, passing the +// report name e.g. json/html/html-spa/text +const report = reports.create('json', { + skipEmpty: configSkipEmpty, + skipFull: configSkipFull +}) + +// call execute to synchronously create and write the report to disk +report.execute(context) +``` diff --git a/node_modules/istanbul-lib-report/index.js b/node_modules/istanbul-lib-report/index.js new file mode 100755 index 0000000..af1a1c8 --- /dev/null +++ b/node_modules/istanbul-lib-report/index.js @@ -0,0 +1,40 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +/** + * @module Exports + */ + +const Context = require('./lib/context'); +const watermarks = require('./lib/watermarks'); +const ReportBase = require('./lib/report-base'); + +module.exports = { + /** + * returns a reporting context for the supplied options + * @param {Object} [opts=null] opts + * @returns {Context} + */ + createContext(opts) { + return new Context(opts); + }, + + /** + * returns the default watermarks that would be used when not + * overridden + * @returns {Object} an object with `statements`, `functions`, `branches`, + * and `line` keys. Each value is a 2 element array that has the low and + * high watermark as percentages. + */ + getDefaultWatermarks() { + return watermarks.getDefault(); + }, + + /** + * Base class for all reports + */ + ReportBase +}; diff --git a/node_modules/istanbul-lib-report/lib/context.js b/node_modules/istanbul-lib-report/lib/context.js new file mode 100755 index 0000000..fbb30bc --- /dev/null +++ b/node_modules/istanbul-lib-report/lib/context.js @@ -0,0 +1,132 @@ +'use strict'; +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +const fs = require('fs'); +const FileWriter = require('./file-writer'); +const XMLWriter = require('./xml-writer'); +const tree = require('./tree'); +const watermarks = require('./watermarks'); +const SummarizerFactory = require('./summarizer-factory'); + +function defaultSourceLookup(path) { + try { + return fs.readFileSync(path, 'utf8'); + } catch (ex) { + throw new Error(`Unable to lookup source: ${path} (${ex.message})`); + } +} + +function normalizeWatermarks(specified = {}) { + Object.entries(watermarks.getDefault()).forEach(([k, value]) => { + const specValue = specified[k]; + if (!Array.isArray(specValue) || specValue.length !== 2) { + specified[k] = value; + } + }); + + return specified; +} + +/** + * A reporting context that is passed to report implementations + * @param {Object} [opts=null] opts options + * @param {String} [opts.dir='coverage'] opts.dir the reporting directory + * @param {Object} [opts.watermarks=null] opts.watermarks watermarks for + * statements, lines, branches and functions + * @param {Function} [opts.sourceFinder=fsLookup] opts.sourceFinder a + * function that returns source code given a file path. Defaults to + * filesystem lookups based on path. + * @constructor + */ +class Context { + constructor(opts) { + this.dir = opts.dir || 'coverage'; + this.watermarks = normalizeWatermarks(opts.watermarks); + this.sourceFinder = opts.sourceFinder || defaultSourceLookup; + this._summarizerFactory = new SummarizerFactory( + opts.coverageMap, + opts.defaultSummarizer + ); + this.data = {}; + } + + /** + * returns a FileWriter implementation for reporting use. Also available + * as the `writer` property on the context. + * @returns {Writer} + */ + getWriter() { + return this.writer; + } + + /** + * returns the source code for the specified file path or throws if + * the source could not be found. + * @param {String} filePath the file path as found in a file coverage object + * @returns {String} the source code + */ + getSource(filePath) { + return this.sourceFinder(filePath); + } + + /** + * returns the coverage class given a coverage + * types and a percentage value. + * @param {String} type - the coverage type, one of `statements`, `functions`, + * `branches`, or `lines` + * @param {Number} value - the percentage value + * @returns {String} one of `high`, `medium` or `low` + */ + classForPercent(type, value) { + const watermarks = this.watermarks[type]; + if (!watermarks) { + return 'unknown'; + } + if (value < watermarks[0]) { + return 'low'; + } + if (value >= watermarks[1]) { + return 'high'; + } + return 'medium'; + } + + /** + * returns an XML writer for the supplied content writer + * @param {ContentWriter} contentWriter the content writer to which the returned XML writer + * writes data + * @returns {XMLWriter} + */ + getXMLWriter(contentWriter) { + return new XMLWriter(contentWriter); + } + + /** + * returns a full visitor given a partial one. + * @param {Object} partialVisitor a partial visitor only having the functions of + * interest to the caller. These functions are called with a scope that is the + * supplied object. + * @returns {Visitor} + */ + getVisitor(partialVisitor) { + return new tree.Visitor(partialVisitor); + } + + getTree(name = 'defaultSummarizer') { + return this._summarizerFactory[name]; + } +} + +Object.defineProperty(Context.prototype, 'writer', { + enumerable: true, + get() { + if (!this.data.writer) { + this.data.writer = new FileWriter(this.dir); + } + return this.data.writer; + } +}); + +module.exports = Context; diff --git a/node_modules/istanbul-lib-report/lib/file-writer.js b/node_modules/istanbul-lib-report/lib/file-writer.js new file mode 100755 index 0000000..de1154b --- /dev/null +++ b/node_modules/istanbul-lib-report/lib/file-writer.js @@ -0,0 +1,189 @@ +'use strict'; +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +const path = require('path'); +const fs = require('fs'); +const mkdirp = require('make-dir'); +const supportsColor = require('supports-color'); + +/** + * Base class for writing content + * @class ContentWriter + * @constructor + */ +class ContentWriter { + /** + * returns the colorized version of a string. Typically, + * content writers that write to files will return the + * same string and ones writing to a tty will wrap it in + * appropriate escape sequences. + * @param {String} str the string to colorize + * @param {String} clazz one of `high`, `medium` or `low` + * @returns {String} the colorized form of the string + */ + colorize(str /*, clazz*/) { + return str; + } + + /** + * writes a string appended with a newline to the destination + * @param {String} str the string to write + */ + println(str) { + this.write(`${str}\n`); + } + + /** + * closes this content writer. Should be called after all writes are complete. + */ + close() {} +} + +/** + * a content writer that writes to a file + * @param {Number} fd - the file descriptor + * @extends ContentWriter + * @constructor + */ +class FileContentWriter extends ContentWriter { + constructor(fd) { + super(); + + this.fd = fd; + } + + write(str) { + fs.writeSync(this.fd, str); + } + + close() { + fs.closeSync(this.fd); + } +} + +// allow stdout to be captured for tests. +let capture = false; +let output = ''; + +/** + * a content writer that writes to the console + * @extends ContentWriter + * @constructor + */ +class ConsoleWriter extends ContentWriter { + write(str) { + if (capture) { + output += str; + } else { + process.stdout.write(str); + } + } + + colorize(str, clazz) { + const colors = { + low: '31;1', + medium: '33;1', + high: '32;1' + }; + + /* istanbul ignore next: different modes for CI and local */ + if (supportsColor.stdout && colors[clazz]) { + return `\u001b[${colors[clazz]}m${str}\u001b[0m`; + } + return str; + } +} + +/** + * utility for writing files under a specific directory + * @class FileWriter + * @param {String} baseDir the base directory under which files should be written + * @constructor + */ +class FileWriter { + constructor(baseDir) { + if (!baseDir) { + throw new Error('baseDir must be specified'); + } + this.baseDir = baseDir; + } + + /** + * static helpers for capturing stdout report output; + * super useful for tests! + */ + static startCapture() { + capture = true; + } + + static stopCapture() { + capture = false; + } + + static getOutput() { + return output; + } + + static resetOutput() { + output = ''; + } + + /** + * returns a FileWriter that is rooted at the supplied subdirectory + * @param {String} subdir the subdirectory under which to root the + * returned FileWriter + * @returns {FileWriter} + */ + writerForDir(subdir) { + if (path.isAbsolute(subdir)) { + throw new Error( + `Cannot create subdir writer for absolute path: ${subdir}` + ); + } + return new FileWriter(`${this.baseDir}/${subdir}`); + } + + /** + * copies a file from a source directory to a destination name + * @param {String} source path to source file + * @param {String} dest relative path to destination file + * @param {String} [header=undefined] optional text to prepend to destination + * (e.g., an "this file is autogenerated" comment, copyright notice, etc.) + */ + copyFile(source, dest, header) { + if (path.isAbsolute(dest)) { + throw new Error(`Cannot write to absolute path: ${dest}`); + } + dest = path.resolve(this.baseDir, dest); + mkdirp.sync(path.dirname(dest)); + let contents; + if (header) { + contents = header + fs.readFileSync(source, 'utf8'); + } else { + contents = fs.readFileSync(source); + } + fs.writeFileSync(dest, contents); + } + + /** + * returns a content writer for writing content to the supplied file. + * @param {String|null} file the relative path to the file or the special + * values `"-"` or `null` for writing to the console + * @returns {ContentWriter} + */ + writeFile(file) { + if (file === null || file === '-') { + return new ConsoleWriter(); + } + if (path.isAbsolute(file)) { + throw new Error(`Cannot write to absolute path: ${file}`); + } + file = path.resolve(this.baseDir, file); + mkdirp.sync(path.dirname(file)); + return new FileContentWriter(fs.openSync(file, 'w')); + } +} + +module.exports = FileWriter; diff --git a/node_modules/istanbul-lib-report/lib/path.js b/node_modules/istanbul-lib-report/lib/path.js new file mode 100755 index 0000000..c928b17 --- /dev/null +++ b/node_modules/istanbul-lib-report/lib/path.js @@ -0,0 +1,169 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +const path = require('path'); +let parsePath = path.parse; +let SEP = path.sep; +const origParser = parsePath; +const origSep = SEP; + +function makeRelativeNormalizedPath(str, sep) { + const parsed = parsePath(str); + let root = parsed.root; + let dir; + let file = parsed.base; + let quoted; + let pos; + + // handle a weird windows case separately + if (sep === '\\') { + pos = root.indexOf(':\\'); + if (pos >= 0) { + root = root.substring(0, pos + 2); + } + } + dir = parsed.dir.substring(root.length); + + if (str === '') { + return []; + } + + if (sep !== '/') { + quoted = new RegExp(sep.replace(/\W/g, '\\$&'), 'g'); + dir = dir.replace(quoted, '/'); + file = file.replace(quoted, '/'); // excessively paranoid? + } + + if (dir !== '') { + dir = `${dir}/${file}`; + } else { + dir = file; + } + if (dir.substring(0, 1) === '/') { + dir = dir.substring(1); + } + dir = dir.split(/\/+/); + return dir; +} + +class Path { + constructor(strOrArray) { + if (Array.isArray(strOrArray)) { + this.v = strOrArray; + } else if (typeof strOrArray === 'string') { + this.v = makeRelativeNormalizedPath(strOrArray, SEP); + } else { + throw new Error( + `Invalid Path argument must be string or array:${strOrArray}` + ); + } + } + + toString() { + return this.v.join('/'); + } + + hasParent() { + return this.v.length > 0; + } + + parent() { + if (!this.hasParent()) { + throw new Error('Unable to get parent for 0 elem path'); + } + const p = this.v.slice(); + p.pop(); + return new Path(p); + } + + elements() { + return this.v.slice(); + } + + name() { + return this.v.slice(-1)[0]; + } + + contains(other) { + let i; + if (other.length > this.length) { + return false; + } + for (i = 0; i < other.length; i += 1) { + if (this.v[i] !== other.v[i]) { + return false; + } + } + return true; + } + + ancestorOf(other) { + return other.contains(this) && other.length !== this.length; + } + + descendantOf(other) { + return this.contains(other) && other.length !== this.length; + } + + commonPrefixPath(other) { + const len = this.length > other.length ? other.length : this.length; + let i; + const ret = []; + + for (i = 0; i < len; i += 1) { + if (this.v[i] === other.v[i]) { + ret.push(this.v[i]); + } else { + break; + } + } + return new Path(ret); + } + + static compare(a, b) { + const al = a.length; + const bl = b.length; + + if (al < bl) { + return -1; + } + + if (al > bl) { + return 1; + } + + const astr = a.toString(); + const bstr = b.toString(); + return astr < bstr ? -1 : astr > bstr ? 1 : 0; + } +} + +['push', 'pop', 'shift', 'unshift', 'splice'].forEach(fn => { + Object.defineProperty(Path.prototype, fn, { + value(...args) { + return this.v[fn](...args); + } + }); +}); + +Object.defineProperty(Path.prototype, 'length', { + enumerable: true, + get() { + return this.v.length; + } +}); + +module.exports = Path; +Path.tester = { + setParserAndSep(p, sep) { + parsePath = p; + SEP = sep; + }, + reset() { + parsePath = origParser; + SEP = origSep; + } +}; diff --git a/node_modules/istanbul-lib-report/lib/report-base.js b/node_modules/istanbul-lib-report/lib/report-base.js new file mode 100755 index 0000000..96de750 --- /dev/null +++ b/node_modules/istanbul-lib-report/lib/report-base.js @@ -0,0 +1,16 @@ +'use strict'; + +// TODO: switch to class private field when targetting node.js 12 +const _summarizer = Symbol('ReportBase.#summarizer'); + +class ReportBase { + constructor(opts = {}) { + this[_summarizer] = opts.summarizer; + } + + execute(context) { + context.getTree(this[_summarizer]).visit(this, context); + } +} + +module.exports = ReportBase; diff --git a/node_modules/istanbul-lib-report/lib/summarizer-factory.js b/node_modules/istanbul-lib-report/lib/summarizer-factory.js new file mode 100755 index 0000000..5e8acd9 --- /dev/null +++ b/node_modules/istanbul-lib-report/lib/summarizer-factory.js @@ -0,0 +1,284 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +const coverage = require('istanbul-lib-coverage'); +const Path = require('./path'); +const { BaseNode, BaseTree } = require('./tree'); + +class ReportNode extends BaseNode { + constructor(path, fileCoverage) { + super(); + + this.path = path; + this.parent = null; + this.fileCoverage = fileCoverage; + this.children = []; + } + + static createRoot(children) { + const root = new ReportNode(new Path([])); + + children.forEach(child => { + root.addChild(child); + }); + + return root; + } + + addChild(child) { + child.parent = this; + this.children.push(child); + } + + asRelative(p) { + if (p.substring(0, 1) === '/') { + return p.substring(1); + } + return p; + } + + getQualifiedName() { + return this.asRelative(this.path.toString()); + } + + getRelativeName() { + const parent = this.getParent(); + const myPath = this.path; + let relPath; + let i; + const parentPath = parent ? parent.path : new Path([]); + if (parentPath.ancestorOf(myPath)) { + relPath = new Path(myPath.elements()); + for (i = 0; i < parentPath.length; i += 1) { + relPath.shift(); + } + return this.asRelative(relPath.toString()); + } + return this.asRelative(this.path.toString()); + } + + getParent() { + return this.parent; + } + + getChildren() { + return this.children; + } + + isSummary() { + return !this.fileCoverage; + } + + getFileCoverage() { + return this.fileCoverage; + } + + getCoverageSummary(filesOnly) { + const cacheProp = `c_${filesOnly ? 'files' : 'full'}`; + let summary; + + if (Object.prototype.hasOwnProperty.call(this, cacheProp)) { + return this[cacheProp]; + } + + if (!this.isSummary()) { + summary = this.getFileCoverage().toSummary(); + } else { + let count = 0; + summary = coverage.createCoverageSummary(); + this.getChildren().forEach(child => { + if (filesOnly && child.isSummary()) { + return; + } + count += 1; + summary.merge(child.getCoverageSummary(filesOnly)); + }); + if (count === 0 && filesOnly) { + summary = null; + } + } + this[cacheProp] = summary; + return summary; + } +} + +class ReportTree extends BaseTree { + constructor(root, childPrefix) { + super(root); + + const maybePrefix = node => { + if (childPrefix && !node.isRoot()) { + node.path.unshift(childPrefix); + } + }; + this.visit({ + onDetail: maybePrefix, + onSummary(node) { + maybePrefix(node); + node.children.sort((a, b) => { + const astr = a.path.toString(); + const bstr = b.path.toString(); + return astr < bstr + ? -1 + : astr > bstr + ? 1 + : /* istanbul ignore next */ 0; + }); + } + }); + } +} + +function findCommonParent(paths) { + return paths.reduce( + (common, path) => common.commonPrefixPath(path), + paths[0] || new Path([]) + ); +} + +function findOrCreateParent(parentPath, nodeMap, created = () => {}) { + let parent = nodeMap[parentPath.toString()]; + + if (!parent) { + parent = new ReportNode(parentPath); + nodeMap[parentPath.toString()] = parent; + created(parentPath, parent); + } + + return parent; +} + +function toDirParents(list) { + const nodeMap = Object.create(null); + list.forEach(o => { + const parent = findOrCreateParent(o.path.parent(), nodeMap); + parent.addChild(new ReportNode(o.path, o.fileCoverage)); + }); + + return Object.values(nodeMap); +} + +function addAllPaths(topPaths, nodeMap, path, node) { + const parent = findOrCreateParent( + path.parent(), + nodeMap, + (parentPath, parent) => { + if (parentPath.hasParent()) { + addAllPaths(topPaths, nodeMap, parentPath, parent); + } else { + topPaths.push(parent); + } + } + ); + + parent.addChild(node); +} + +function foldIntoOneDir(node, parent) { + const { children } = node; + if (children.length === 1 && !children[0].fileCoverage) { + children[0].parent = parent; + return foldIntoOneDir(children[0], parent); + } + node.children = children.map(child => foldIntoOneDir(child, node)); + return node; +} + +function pkgSummaryPrefix(dirParents, commonParent) { + if (!dirParents.some(dp => dp.path.length === 0)) { + return; + } + + if (commonParent.length === 0) { + return 'root'; + } + + return commonParent.name(); +} + +class SummarizerFactory { + constructor(coverageMap, defaultSummarizer = 'pkg') { + this._coverageMap = coverageMap; + this._defaultSummarizer = defaultSummarizer; + this._initialList = coverageMap.files().map(filePath => ({ + filePath, + path: new Path(filePath), + fileCoverage: coverageMap.fileCoverageFor(filePath) + })); + this._commonParent = findCommonParent( + this._initialList.map(o => o.path.parent()) + ); + if (this._commonParent.length > 0) { + this._initialList.forEach(o => { + o.path.splice(0, this._commonParent.length); + }); + } + } + + get defaultSummarizer() { + return this[this._defaultSummarizer]; + } + + get flat() { + if (!this._flat) { + this._flat = new ReportTree( + ReportNode.createRoot( + this._initialList.map( + node => new ReportNode(node.path, node.fileCoverage) + ) + ) + ); + } + + return this._flat; + } + + _createPkg() { + const dirParents = toDirParents(this._initialList); + if (dirParents.length === 1) { + return new ReportTree(dirParents[0]); + } + + return new ReportTree( + ReportNode.createRoot(dirParents), + pkgSummaryPrefix(dirParents, this._commonParent) + ); + } + + get pkg() { + if (!this._pkg) { + this._pkg = this._createPkg(); + } + + return this._pkg; + } + + _createNested() { + const nodeMap = Object.create(null); + const topPaths = []; + this._initialList.forEach(o => { + const node = new ReportNode(o.path, o.fileCoverage); + addAllPaths(topPaths, nodeMap, o.path, node); + }); + + const topNodes = topPaths.map(node => foldIntoOneDir(node)); + if (topNodes.length === 1) { + return new ReportTree(topNodes[0]); + } + + return new ReportTree(ReportNode.createRoot(topNodes)); + } + + get nested() { + if (!this._nested) { + this._nested = this._createNested(); + } + + return this._nested; + } +} + +module.exports = SummarizerFactory; diff --git a/node_modules/istanbul-lib-report/lib/tree.js b/node_modules/istanbul-lib-report/lib/tree.js new file mode 100755 index 0000000..7c18204 --- /dev/null +++ b/node_modules/istanbul-lib-report/lib/tree.js @@ -0,0 +1,137 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +/** + * An object with methods that are called during the traversal of the coverage tree. + * A visitor has the following methods that are called during tree traversal. + * + * * `onStart(root, state)` - called before traversal begins + * * `onSummary(node, state)` - called for every summary node + * * `onDetail(node, state)` - called for every detail node + * * `onSummaryEnd(node, state)` - called after all children have been visited for + * a summary node. + * * `onEnd(root, state)` - called after traversal ends + * + * @param delegate - a partial visitor that only implements the methods of interest + * The visitor object supplies the missing methods as noops. For example, reports + * that only need the final coverage summary need implement `onStart` and nothing + * else. Reports that use only detailed coverage information need implement `onDetail` + * and nothing else. + * @constructor + */ +class Visitor { + constructor(delegate) { + this.delegate = delegate; + } +} + +['Start', 'End', 'Summary', 'SummaryEnd', 'Detail'] + .map(k => `on${k}`) + .forEach(fn => { + Object.defineProperty(Visitor.prototype, fn, { + writable: true, + value(node, state) { + if (typeof this.delegate[fn] === 'function') { + this.delegate[fn](node, state); + } + } + }); + }); + +class CompositeVisitor extends Visitor { + constructor(visitors) { + super(); + + if (!Array.isArray(visitors)) { + visitors = [visitors]; + } + this.visitors = visitors.map(v => { + if (v instanceof Visitor) { + return v; + } + return new Visitor(v); + }); + } +} + +['Start', 'Summary', 'SummaryEnd', 'Detail', 'End'] + .map(k => `on${k}`) + .forEach(fn => { + Object.defineProperty(CompositeVisitor.prototype, fn, { + value(node, state) { + this.visitors.forEach(v => { + v[fn](node, state); + }); + } + }); + }); + +class BaseNode { + isRoot() { + return !this.getParent(); + } + + /** + * visit all nodes depth-first from this node down. Note that `onStart` + * and `onEnd` are never called on the visitor even if the current + * node is the root of the tree. + * @param visitor a full visitor that is called during tree traversal + * @param state optional state that is passed around + */ + visit(visitor, state) { + if (this.isSummary()) { + visitor.onSummary(this, state); + } else { + visitor.onDetail(this, state); + } + + this.getChildren().forEach(child => { + child.visit(visitor, state); + }); + + if (this.isSummary()) { + visitor.onSummaryEnd(this, state); + } + } +} + +/** + * abstract base class for a coverage tree. + * @constructor + */ +class BaseTree { + constructor(root) { + this.root = root; + } + + /** + * returns the root node of the tree + */ + getRoot() { + return this.root; + } + + /** + * visits the tree depth-first with the supplied partial visitor + * @param visitor - a potentially partial visitor + * @param state - the state to be passed around during tree traversal + */ + visit(visitor, state) { + if (!(visitor instanceof Visitor)) { + visitor = new Visitor(visitor); + } + visitor.onStart(this.getRoot(), state); + this.getRoot().visit(visitor, state); + visitor.onEnd(this.getRoot(), state); + } +} + +module.exports = { + BaseTree, + BaseNode, + Visitor, + CompositeVisitor +}; diff --git a/node_modules/istanbul-lib-report/lib/watermarks.js b/node_modules/istanbul-lib-report/lib/watermarks.js new file mode 100755 index 0000000..fb76082 --- /dev/null +++ b/node_modules/istanbul-lib-report/lib/watermarks.js @@ -0,0 +1,15 @@ +'use strict'; +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +module.exports = { + getDefault() { + return { + statements: [50, 80], + functions: [50, 80], + branches: [50, 80], + lines: [50, 80] + }; + } +}; diff --git a/node_modules/istanbul-lib-report/lib/xml-writer.js b/node_modules/istanbul-lib-report/lib/xml-writer.js new file mode 100755 index 0000000..a32550e --- /dev/null +++ b/node_modules/istanbul-lib-report/lib/xml-writer.js @@ -0,0 +1,90 @@ +'use strict'; +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +const INDENT = ' '; + +function attrString(attrs) { + return Object.entries(attrs || {}) + .map(([k, v]) => ` ${k}="${v}"`) + .join(''); +} + +/** + * a utility class to produce well-formed, indented XML + * @param {ContentWriter} contentWriter the content writer that this utility wraps + * @constructor + */ +class XMLWriter { + constructor(contentWriter) { + this.cw = contentWriter; + this.stack = []; + } + + indent(str) { + return this.stack.map(() => INDENT).join('') + str; + } + + /** + * writes the opening XML tag with the supplied attributes + * @param {String} name tag name + * @param {Object} [attrs=null] attrs attributes for the tag + */ + openTag(name, attrs) { + const str = this.indent(`<${name + attrString(attrs)}>`); + this.cw.println(str); + this.stack.push(name); + } + + /** + * closes an open XML tag. + * @param {String} name - tag name to close. This must match the writer's + * notion of the tag that is currently open. + */ + closeTag(name) { + if (this.stack.length === 0) { + throw new Error(`Attempt to close tag ${name} when not opened`); + } + const stashed = this.stack.pop(); + const str = ``; + + if (stashed !== name) { + throw new Error( + `Attempt to close tag ${name} when ${stashed} was the one open` + ); + } + this.cw.println(this.indent(str)); + } + + /** + * writes a tag and its value opening and closing it at the same time + * @param {String} name tag name + * @param {Object} [attrs=null] attrs tag attributes + * @param {String} [content=null] content optional tag content + */ + inlineTag(name, attrs, content) { + let str = '<' + name + attrString(attrs); + if (content) { + str += `>${content}`; + } else { + str += '/>'; + } + str = this.indent(str); + this.cw.println(str); + } + + /** + * closes all open tags and ends the document + */ + closeAll() { + this.stack + .slice() + .reverse() + .forEach(name => { + this.closeTag(name); + }); + } +} + +module.exports = XMLWriter; diff --git a/node_modules/istanbul-lib-report/package.json b/node_modules/istanbul-lib-report/package.json new file mode 100755 index 0000000..95bab1c --- /dev/null +++ b/node_modules/istanbul-lib-report/package.json @@ -0,0 +1,45 @@ +{ + "name": "istanbul-lib-report", + "version": "3.0.0", + "description": "Base reporting library for istanbul", + "author": "Krishnan Anantheswaran ", + "main": "index.js", + "files": [ + "lib", + "index.js" + ], + "scripts": { + "test": "nyc --nycrc-path=../../monorepo-per-package-full.js mocha" + }, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "devDependencies": { + "chai": "^4.2.0", + "mocha": "^6.2.2", + "nyc": "^15.0.0-beta.2", + "rimraf": "^3.0.0" + }, + "license": "BSD-3-Clause", + "bugs": { + "url": "https://github.com/istanbuljs/istanbuljs/issues" + }, + "homepage": "https://istanbul.js.org/", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/istanbuljs/istanbuljs.git", + "directory": "packages/istanbul-lib-report" + }, + "keywords": [ + "istanbul", + "report", + "api", + "lib" + ], + "engines": { + "node": ">=8" + }, + "gitHead": "5319df684b508ff6fb19fe8b9a6147a3c5924e4b" +} diff --git a/node_modules/istanbul-lib-source-maps/CHANGELOG.md b/node_modules/istanbul-lib-source-maps/CHANGELOG.md new file mode 100755 index 0000000..a1c55c2 --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/CHANGELOG.md @@ -0,0 +1,295 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [4.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@4.0.0-alpha.5...istanbul-lib-source-maps@4.0.0) (2019-12-20) + +**Note:** Version bump only for package istanbul-lib-source-maps + + + + + +# [4.0.0-alpha.5](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@4.0.0-alpha.4...istanbul-lib-source-maps@4.0.0-alpha.5) (2019-12-07) + +**Note:** Version bump only for package istanbul-lib-source-maps + + + + + +# [4.0.0-alpha.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@4.0.0-alpha.3...istanbul-lib-source-maps@4.0.0-alpha.4) (2019-11-16) + + +### Bug Fixes + +* sourceFinder cannot be async. ([#501](https://github.com/istanbuljs/istanbuljs/issues/501)) ([094f1b8](https://github.com/istanbuljs/istanbuljs/commit/094f1b83b4652c5ba492781620cb6358c685a849)) + + + + + +# [4.0.0-alpha.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@4.0.0-alpha.2...istanbul-lib-source-maps@4.0.0-alpha.3) (2019-11-15) + + +### Bug Fixes + +* mappedCoverage.addStatement is not a function ([#500](https://github.com/istanbuljs/istanbuljs/issues/500)) ([d77cc14](https://github.com/istanbuljs/istanbuljs/commit/d77cc147f7d791686af2975f7d906603335d0bfc)), closes [istanbuljs/nyc#940](https://github.com/istanbuljs/nyc/issues/940) + + + + + +# [4.0.0-alpha.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@4.0.0-alpha.1...istanbul-lib-source-maps@4.0.0-alpha.2) (2019-10-09) + + +### Features + +* Convert to async API ([#489](https://github.com/istanbuljs/istanbuljs/issues/489)) ([f8ebbc9](https://github.com/istanbuljs/istanbuljs/commit/f8ebbc9)) + + +### BREAKING CHANGES + +* MapStore#transformCoverage is now async and returns a +the coverage data only. The `sourceFinder` method is now async and +provided directly on the `MapStore` instance. + + + + + +# [4.0.0-alpha.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@4.0.0-alpha.0...istanbul-lib-source-maps@4.0.0-alpha.1) (2019-10-06) + + +### Bug Fixes + +* **package:** update rimraf to version 3.0.0 ([b6e7953](https://github.com/istanbuljs/istanbuljs/commit/b6e7953)) + + +### Features + +* Accept SourceStore and sourceStoreOpts options ([#482](https://github.com/istanbuljs/istanbuljs/issues/482)) ([0dc45a6](https://github.com/istanbuljs/istanbuljs/commit/0dc45a6)) +* Add addInputSourceMapsSync and getSourceMapSync methods ([#484](https://github.com/istanbuljs/istanbuljs/issues/484)) ([dd7048e](https://github.com/istanbuljs/istanbuljs/commit/dd7048e)) + + +### BREAKING CHANGES + +* sourceStore and tmpdir options are removed. + + + + + +# [4.0.0-alpha.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@3.0.6...istanbul-lib-source-maps@4.0.0-alpha.0) (2019-06-19) + + +### Features + +* Update dependencies, require Node.js 8 ([#401](https://github.com/istanbuljs/istanbuljs/issues/401)) ([bf3a539](https://github.com/istanbuljs/istanbuljs/commit/bf3a539)) + + +### BREAKING CHANGES + +* Node.js 8 is now required + + + + + +### [4.0.1](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps-v4.0.0...istanbul-lib-source-maps-v4.0.1) (2021-10-12) + + +### Bug Fixes + +* source mapping for branch statements ([#518](https://www.github.com/istanbuljs/istanbuljs/issues/518)) ([3833708](https://www.github.com/istanbuljs/istanbuljs/commit/38337081d97baa6295707d569dee9c4abc3f7da7)) + +## [3.0.6](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@3.0.5...istanbul-lib-source-maps@3.0.6) (2019-04-24) + + +### Bug Fixes + +* if LEAST_UPPER_BOUND returns null, try GREATEST_LOWER_BOUND ([#375](https://github.com/istanbuljs/istanbuljs/issues/375)) ([72b0f05](https://github.com/istanbuljs/istanbuljs/commit/72b0f05)) + + + + + +## [3.0.5](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@3.0.4...istanbul-lib-source-maps@3.0.5) (2019-04-09) + +**Note:** Version bump only for package istanbul-lib-source-maps + + + + + +## [3.0.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@3.0.3...istanbul-lib-source-maps@3.0.4) (2019-04-03) + +**Note:** Version bump only for package istanbul-lib-source-maps + + + + + +## [3.0.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@3.0.2...istanbul-lib-source-maps@3.0.3) (2019-03-12) + + +### Bug Fixes + +* Map unique files once, regardless of path separator ([#287](https://github.com/istanbuljs/istanbuljs/issues/287)) ([39a1e56](https://github.com/istanbuljs/istanbuljs/commit/39a1e56)) + + + + + +## [3.0.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@3.0.1...istanbul-lib-source-maps@3.0.2) (2019-01-26) + +**Note:** Version bump only for package istanbul-lib-source-maps + + + + + + +## [3.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@3.0.0...istanbul-lib-source-maps@3.0.1) (2018-12-25) + + +### Bug Fixes + +* correct variable name in source-map transform ([#257](https://github.com/istanbuljs/istanbuljs/issues/257)) ([de9c921](https://github.com/istanbuljs/istanbuljs/commit/de9c921)) + + + + + +# [3.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@2.0.1...istanbul-lib-source-maps@3.0.0) (2018-12-19) + + +### Bug Fixes + +* correctly calculate end position of sourcemap statement ([f97ffc7](https://github.com/istanbuljs/istanbuljs/commit/f97ffc7)) + + +### BREAKING CHANGES + +* coverage output can now contain Infinity, when a range extends past the source in a file. + + + + + +## [2.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@2.0.0...istanbul-lib-source-maps@2.0.1) (2018-07-07) + + + + +**Note:** Version bump only for package istanbul-lib-source-maps + + +# [2.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@1.2.5...istanbul-lib-source-maps@2.0.0) (2018-06-06) + + +### Bug Fixes + +* use null prototype for map objects ([#177](https://github.com/istanbuljs/istanbuljs/issues/177)) ([9a5a30c](https://github.com/istanbuljs/istanbuljs/commit/9a5a30c)) + + +### BREAKING CHANGES + +* a null prototype is now used in several places rather than the default `{}` assignment. + + + + + +## [1.2.5](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@1.2.4...istanbul-lib-source-maps@1.2.5) (2018-05-31) + + +### Bug Fixes + +* process.cwd is a function not a string ([#163](https://github.com/istanbuljs/istanbuljs/issues/163)). ([#171](https://github.com/istanbuljs/istanbuljs/issues/171)) ([9c7802c](https://github.com/istanbuljs/istanbuljs/commit/9c7802c)) + + + + + +## [1.2.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@1.2.3...istanbul-lib-source-maps@1.2.4) (2018-03-04) + + + + +**Note:** Version bump only for package istanbul-lib-source-maps + + +## [1.2.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@1.2.2...istanbul-lib-source-maps@1.2.3) (2018-02-13) + + + + +**Note:** Version bump only for package istanbul-lib-source-maps + + +## [1.2.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@1.2.1...istanbul-lib-source-maps@1.2.2) (2017-10-21) + + + + +**Note:** Version bump only for package istanbul-lib-source-maps + + +## [1.2.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@1.2.0...istanbul-lib-source-maps@1.2.1) (2017-05-27) + + + + + +# [1.2.0](https://github.com/istanbuljs/istanbul-lib-source-maps/compare/istanbul-lib-source-maps@1.1.1...istanbul-lib-source-maps@1.2.0) (2017-04-29) + + +### Features + +* pull in debug module, to make debug messages optional ([#36](https://github.com/istanbuljs/istanbuljs/issues/36)) ([189519d](https://github.com/istanbuljs/istanbul-lib-source-maps/commit/189519d)) + + + + + +## [1.1.1](https://github.com/istanbuljs/istanbul-lib-source-maps/compare/istanbul-lib-source-maps@1.1.0...istanbul-lib-source-maps@1.1.1) (2017-03-27) + + +# [1.1.0](https://github.com/istanbuljs/istanbul-lib-source-maps/compare/v1.0.2...v1.1.0) (2016-11-10) + + +### Features + +* read and apply any input source maps stored with coverage data ([#4](https://github.com/istanbuljs/istanbul-lib-source-maps/issues/4)) ([aea405b](https://github.com/istanbuljs/istanbul-lib-source-maps/commit/aea405b)) + + + + +## [1.0.2](https://github.com/istanbuljs/istanbul-lib-source-maps/compare/v1.0.1...v1.0.2) (2016-10-03) + + +### Bug Fixes + +* broken mapped coverage report ([#6](https://github.com/istanbuljs/istanbul-lib-source-maps/issues/6)) ([d9dd738](https://github.com/istanbuljs/istanbul-lib-source-maps/commit/d9dd738)) + + + + +## [1.0.1](https://github.com/istanbuljs/istanbul-lib-source-maps/compare/v1.0.0...v1.0.1) (2016-09-13) + + +### Bug Fixes + +* position validation shouldn't throw away locations with 0 ([#5](https://github.com/istanbuljs/istanbul-lib-source-maps/issues/5)) ([ac4b72c](https://github.com/istanbuljs/istanbul-lib-source-maps/commit/ac4b72c)) + + + + +# [1.0.0](https://github.com/istanbuljs/istanbul-lib-source-maps/compare/v1.0.0-alpha.9...v1.0.0) (2016-08-31) + + +### Bug Fixes + +* discard more bad source map positions ([#3](https://github.com/istanbuljs/istanbul-lib-source-maps/issues/3)) ([ed7b27f](https://github.com/istanbuljs/istanbul-lib-source-maps/commit/ed7b27f)) diff --git a/node_modules/istanbul-lib-source-maps/LICENSE b/node_modules/istanbul-lib-source-maps/LICENSE new file mode 100755 index 0000000..c05aaaf --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/LICENSE @@ -0,0 +1,24 @@ +Copyright 2015 Yahoo! Inc. +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 Yahoo! Inc. 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 YAHOO! INC. 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/node_modules/istanbul-lib-source-maps/README.md b/node_modules/istanbul-lib-source-maps/README.md new file mode 100755 index 0000000..f9a75f8 --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/README.md @@ -0,0 +1,11 @@ +# istanbul-lib-source-maps + +[![Build Status](https://travis-ci.org/istanbuljs/istanbuljs.svg?branch=master)](https://travis-ci.org/istanbuljs/istanbuljs) + +Source map support for istanbuljs. + +## Debugging + +_istanbul-lib-source-maps_ uses the [debug](https://www.npmjs.com/package/debug) module. +Run your application with the environment variable `DEBUG=istanbuljs`, to receive debug +output. diff --git a/node_modules/istanbul-lib-source-maps/index.js b/node_modules/istanbul-lib-source-maps/index.js new file mode 100755 index 0000000..1bcb74c --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/index.js @@ -0,0 +1,15 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +const { MapStore } = require('./lib/map-store'); +/** + * @module Exports + */ +module.exports = { + createSourceMapStore(opts) { + return new MapStore(opts); + } +}; diff --git a/node_modules/istanbul-lib-source-maps/lib/get-mapping.js b/node_modules/istanbul-lib-source-maps/lib/get-mapping.js new file mode 100755 index 0000000..c24f618 --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/lib/get-mapping.js @@ -0,0 +1,182 @@ +/* + Copyright 2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +const pathutils = require('./pathutils'); +const { + GREATEST_LOWER_BOUND, + LEAST_UPPER_BOUND +} = require('source-map').SourceMapConsumer; + +/** + * AST ranges are inclusive for start positions and exclusive for end positions. + * Source maps are also logically ranges over text, though interacting with + * them is generally achieved by working with explicit positions. + * + * When finding the _end_ location of an AST item, the range behavior is + * important because what we're asking for is the _end_ of whatever range + * corresponds to the end location we seek. + * + * This boils down to the following steps, conceptually, though the source-map + * library doesn't expose primitives to do this nicely: + * + * 1. Find the range on the generated file that ends at, or exclusively + * contains the end position of the AST node. + * 2. Find the range on the original file that corresponds to + * that generated range. + * 3. Find the _end_ location of that original range. + */ +function originalEndPositionFor(sourceMap, generatedEnd) { + // Given the generated location, find the original location of the mapping + // that corresponds to a range on the generated file that overlaps the + // generated file end location. Note however that this position on its + // own is not useful because it is the position of the _start_ of the range + // on the original file, and we want the _end_ of the range. + const beforeEndMapping = originalPositionTryBoth( + sourceMap, + generatedEnd.line, + generatedEnd.column - 1 + ); + if (beforeEndMapping.source === null) { + return null; + } + + // Convert that original position back to a generated one, with a bump + // to the right, and a rightward bias. Since 'generatedPositionFor' searches + // for mappings in the original-order sorted list, this will find the + // mapping that corresponds to the one immediately after the + // beforeEndMapping mapping. + const afterEndMapping = sourceMap.generatedPositionFor({ + source: beforeEndMapping.source, + line: beforeEndMapping.line, + column: beforeEndMapping.column + 1, + bias: LEAST_UPPER_BOUND + }); + if ( + // If this is null, it means that we've hit the end of the file, + // so we can use Infinity as the end column. + afterEndMapping.line === null || + // If these don't match, it means that the call to + // 'generatedPositionFor' didn't find any other original mappings on + // the line we gave, so consider the binding to extend to infinity. + sourceMap.originalPositionFor(afterEndMapping).line !== + beforeEndMapping.line + ) { + return { + source: beforeEndMapping.source, + line: beforeEndMapping.line, + column: Infinity + }; + } + + // Convert the end mapping into the real original position. + return sourceMap.originalPositionFor(afterEndMapping); +} + +/** + * Attempts to determine the original source position, first + * returning the closest element to the left (GREATEST_LOWER_BOUND), + * and next returning the closest element to the right (LEAST_UPPER_BOUND). + */ +function originalPositionTryBoth(sourceMap, line, column) { + const mapping = sourceMap.originalPositionFor({ + line, + column, + bias: GREATEST_LOWER_BOUND + }); + if (mapping.source === null) { + return sourceMap.originalPositionFor({ + line, + column, + bias: LEAST_UPPER_BOUND + }); + } else { + return mapping; + } +} + +function isInvalidPosition(pos) { + return ( + !pos || + typeof pos.line !== 'number' || + typeof pos.column !== 'number' || + pos.line < 0 || + pos.column < 0 + ); +} + +/** + * determines the original position for a given location + * @param {SourceMapConsumer} sourceMap the source map + * @param {Object} generatedLocation the original location Object + * @returns {Object} the remapped location Object + */ +function getMapping(sourceMap, generatedLocation, origFile) { + if (!generatedLocation) { + return null; + } + + if ( + isInvalidPosition(generatedLocation.start) || + isInvalidPosition(generatedLocation.end) + ) { + return null; + } + + const start = originalPositionTryBoth( + sourceMap, + generatedLocation.start.line, + generatedLocation.start.column + ); + let end = originalEndPositionFor(sourceMap, generatedLocation.end); + + /* istanbul ignore if: edge case too hard to test for */ + if (!(start && end)) { + return null; + } + + if (!(start.source && end.source)) { + return null; + } + + if (start.source !== end.source) { + return null; + } + + /* istanbul ignore if: edge case too hard to test for */ + if (start.line === null || start.column === null) { + return null; + } + + /* istanbul ignore if: edge case too hard to test for */ + if (end.line === null || end.column === null) { + return null; + } + + if (start.line === end.line && start.column === end.column) { + end = sourceMap.originalPositionFor({ + line: generatedLocation.end.line, + column: generatedLocation.end.column, + bias: LEAST_UPPER_BOUND + }); + end.column -= 1; + } + + return { + source: pathutils.relativeTo(start.source, origFile), + loc: { + start: { + line: start.line, + column: start.column + }, + end: { + line: end.line, + column: end.column + } + } + }; +} + +module.exports = getMapping; diff --git a/node_modules/istanbul-lib-source-maps/lib/map-store.js b/node_modules/istanbul-lib-source-maps/lib/map-store.js new file mode 100755 index 0000000..a99b79a --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/lib/map-store.js @@ -0,0 +1,226 @@ +/* + Copyright 2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +const path = require('path'); +const fs = require('fs'); +const debug = require('debug')('istanbuljs'); +const { SourceMapConsumer } = require('source-map'); +const pathutils = require('./pathutils'); +const { SourceMapTransformer } = require('./transformer'); + +/** + * Tracks source maps for registered files + */ +class MapStore { + /** + * @param {Object} opts [opts=undefined] options. + * @param {Boolean} opts.verbose [opts.verbose=false] verbose mode + * @param {String} opts.baseDir [opts.baseDir=null] alternate base directory + * to resolve sourcemap files + * @param {Class} opts.SourceStore [opts.SourceStore=Map] class to use for + * SourceStore. Must support `get`, `set` and `clear` methods. + * @param {Array} opts.sourceStoreOpts [opts.sourceStoreOpts=[]] arguments + * to use in the SourceStore constructor. + * @constructor + */ + constructor(opts) { + opts = { + baseDir: null, + verbose: false, + SourceStore: Map, + sourceStoreOpts: [], + ...opts + }; + this.baseDir = opts.baseDir; + this.verbose = opts.verbose; + this.sourceStore = new opts.SourceStore(...opts.sourceStoreOpts); + this.data = Object.create(null); + this.sourceFinder = this.sourceFinder.bind(this); + } + + /** + * Registers a source map URL with this store. It makes some input sanity checks + * and silently fails on malformed input. + * @param transformedFilePath - the file path for which the source map is valid. + * This must *exactly* match the path stashed for the coverage object to be + * useful. + * @param sourceMapUrl - the source map URL, **not** a comment + */ + registerURL(transformedFilePath, sourceMapUrl) { + const d = 'data:'; + + if ( + sourceMapUrl.length > d.length && + sourceMapUrl.substring(0, d.length) === d + ) { + const b64 = 'base64,'; + const pos = sourceMapUrl.indexOf(b64); + if (pos > 0) { + this.data[transformedFilePath] = { + type: 'encoded', + data: sourceMapUrl.substring(pos + b64.length) + }; + } else { + debug(`Unable to interpret source map URL: ${sourceMapUrl}`); + } + + return; + } + + const dir = path.dirname(path.resolve(transformedFilePath)); + const file = path.resolve(dir, sourceMapUrl); + this.data[transformedFilePath] = { type: 'file', data: file }; + } + + /** + * Registers a source map object with this store. Makes some basic sanity checks + * and silently fails on malformed input. + * @param transformedFilePath - the file path for which the source map is valid + * @param sourceMap - the source map object + */ + registerMap(transformedFilePath, sourceMap) { + if (sourceMap && sourceMap.version) { + this.data[transformedFilePath] = { + type: 'object', + data: sourceMap + }; + } else { + debug( + 'Invalid source map object: ' + + JSON.stringify(sourceMap, null, 2) + ); + } + } + + /** + * Retrieve a source map object from this store. + * @param filePath - the file path for which the source map is valid + * @returns {Object} a parsed source map object + */ + getSourceMapSync(filePath) { + try { + if (!this.data[filePath]) { + return; + } + + const d = this.data[filePath]; + if (d.type === 'file') { + return JSON.parse(fs.readFileSync(d.data, 'utf8')); + } + + if (d.type === 'encoded') { + return JSON.parse(Buffer.from(d.data, 'base64').toString()); + } + + /* The caller might delete properties */ + return { + ...d.data + }; + } catch (error) { + debug('Error returning source map for ' + filePath); + debug(error.stack); + + return; + } + } + + /** + * Add inputSourceMap property to coverage data + * @param coverageData - the __coverage__ object + * @returns {Object} a parsed source map object + */ + addInputSourceMapsSync(coverageData) { + Object.entries(coverageData).forEach(([filePath, data]) => { + if (data.inputSourceMap) { + return; + } + + const sourceMap = this.getSourceMapSync(filePath); + if (sourceMap) { + data.inputSourceMap = sourceMap; + /* This huge property is not needed. */ + delete data.inputSourceMap.sourcesContent; + } + }); + } + + sourceFinder(filePath) { + const content = this.sourceStore.get(filePath); + if (content !== undefined) { + return content; + } + + if (path.isAbsolute(filePath)) { + return fs.readFileSync(filePath, 'utf8'); + } + + return fs.readFileSync( + pathutils.asAbsolute(filePath, this.baseDir), + 'utf8' + ); + } + + /** + * Transforms the coverage map provided into one that refers to original + * sources when valid mappings have been registered with this store. + * @param {CoverageMap} coverageMap - the coverage map to transform + * @returns {Promise} the transformed coverage map + */ + async transformCoverage(coverageMap) { + const hasInputSourceMaps = coverageMap + .files() + .some( + file => coverageMap.fileCoverageFor(file).data.inputSourceMap + ); + + if (!hasInputSourceMaps && Object.keys(this.data).length === 0) { + return coverageMap; + } + + const transformer = new SourceMapTransformer( + async (filePath, coverage) => { + try { + const obj = + coverage.data.inputSourceMap || + this.getSourceMapSync(filePath); + if (!obj) { + return null; + } + + const smc = new SourceMapConsumer(obj); + smc.sources.forEach(s => { + const content = smc.sourceContentFor(s); + if (content) { + const sourceFilePath = pathutils.relativeTo( + s, + filePath + ); + this.sourceStore.set(sourceFilePath, content); + } + }); + + return smc; + } catch (error) { + debug('Error returning source map for ' + filePath); + debug(error.stack); + + return null; + } + } + ); + + return await transformer.transform(coverageMap); + } + + /** + * Disposes temporary resources allocated by this map store + */ + dispose() { + this.sourceStore.clear(); + } +} + +module.exports = { MapStore }; diff --git a/node_modules/istanbul-lib-source-maps/lib/mapped.js b/node_modules/istanbul-lib-source-maps/lib/mapped.js new file mode 100755 index 0000000..73f256c --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/lib/mapped.js @@ -0,0 +1,113 @@ +/* + Copyright 2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +const { FileCoverage } = require('istanbul-lib-coverage').classes; + +function locString(loc) { + return [ + loc.start.line, + loc.start.column, + loc.end.line, + loc.end.column + ].join(':'); +} + +class MappedCoverage extends FileCoverage { + constructor(pathOrObj) { + super(pathOrObj); + + this.meta = { + last: { + s: 0, + f: 0, + b: 0 + }, + seen: {} + }; + } + + addStatement(loc, hits) { + const key = 's:' + locString(loc); + const { meta } = this; + let index = meta.seen[key]; + + if (index === undefined) { + index = meta.last.s; + meta.last.s += 1; + meta.seen[key] = index; + this.statementMap[index] = this.cloneLocation(loc); + } + + this.s[index] = this.s[index] || 0; + this.s[index] += hits; + return index; + } + + addFunction(name, decl, loc, hits) { + const key = 'f:' + locString(decl); + const { meta } = this; + let index = meta.seen[key]; + + if (index === undefined) { + index = meta.last.f; + meta.last.f += 1; + meta.seen[key] = index; + name = name || `(unknown_${index})`; + this.fnMap[index] = { + name, + decl: this.cloneLocation(decl), + loc: this.cloneLocation(loc) + }; + } + + this.f[index] = this.f[index] || 0; + this.f[index] += hits; + return index; + } + + addBranch(type, loc, branchLocations, hits) { + const key = ['b', ...branchLocations.map(l => locString(l))].join(':'); + const { meta } = this; + let index = meta.seen[key]; + if (index === undefined) { + index = meta.last.b; + meta.last.b += 1; + meta.seen[key] = index; + this.branchMap[index] = { + loc, + type, + locations: branchLocations.map(l => this.cloneLocation(l)) + }; + } + + if (!this.b[index]) { + this.b[index] = branchLocations.map(() => 0); + } + + hits.forEach((hit, i) => { + this.b[index][i] += hit; + }); + return index; + } + + /* Returns a clone of the location object with only the attributes of interest */ + cloneLocation(loc) { + return { + start: { + line: loc.start.line, + column: loc.start.column + }, + end: { + line: loc.end.line, + column: loc.end.column + } + }; + } +} + +module.exports = { + MappedCoverage +}; diff --git a/node_modules/istanbul-lib-source-maps/lib/pathutils.js b/node_modules/istanbul-lib-source-maps/lib/pathutils.js new file mode 100755 index 0000000..7dca05a --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/lib/pathutils.js @@ -0,0 +1,21 @@ +/* + Copyright 2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +const path = require('path'); + +module.exports = { + isAbsolute: path.isAbsolute, + asAbsolute(file, baseDir) { + return path.isAbsolute(file) + ? file + : path.resolve(baseDir || process.cwd(), file); + }, + relativeTo(file, origFile) { + return path.isAbsolute(file) + ? file + : path.resolve(path.dirname(origFile), file); + } +}; diff --git a/node_modules/istanbul-lib-source-maps/lib/transform-utils.js b/node_modules/istanbul-lib-source-maps/lib/transform-utils.js new file mode 100755 index 0000000..0933093 --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/lib/transform-utils.js @@ -0,0 +1,21 @@ +/* + Copyright 2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +function getUniqueKey(pathname) { + return pathname.replace(/[\\/]/g, '_'); +} + +function getOutput(cache) { + return Object.values(cache).reduce( + (output, { file, mappedCoverage }) => ({ + ...output, + [file]: mappedCoverage + }), + {} + ); +} + +module.exports = { getUniqueKey, getOutput }; diff --git a/node_modules/istanbul-lib-source-maps/lib/transformer.js b/node_modules/istanbul-lib-source-maps/lib/transformer.js new file mode 100755 index 0000000..6f63538 --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/lib/transformer.js @@ -0,0 +1,147 @@ +/* + Copyright 2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; + +const debug = require('debug')('istanbuljs'); +const libCoverage = require('istanbul-lib-coverage'); +const { MappedCoverage } = require('./mapped'); +const getMapping = require('./get-mapping'); +const { getUniqueKey, getOutput } = require('./transform-utils'); + +class SourceMapTransformer { + constructor(finder, opts = {}) { + this.finder = finder; + this.baseDir = opts.baseDir || process.cwd(); + this.resolveMapping = opts.getMapping || getMapping; + } + + processFile(fc, sourceMap, coverageMapper) { + let changes = 0; + + Object.entries(fc.statementMap).forEach(([s, loc]) => { + const hits = fc.s[s]; + const mapping = this.resolveMapping(sourceMap, loc, fc.path); + + if (mapping) { + changes += 1; + const mappedCoverage = coverageMapper(mapping.source); + mappedCoverage.addStatement(mapping.loc, hits); + } + }); + + Object.entries(fc.fnMap).forEach(([f, fnMeta]) => { + const hits = fc.f[f]; + const mapping = this.resolveMapping( + sourceMap, + fnMeta.decl, + fc.path + ); + + const spanMapping = this.resolveMapping( + sourceMap, + fnMeta.loc, + fc.path + ); + + if ( + mapping && + spanMapping && + mapping.source === spanMapping.source + ) { + changes += 1; + const mappedCoverage = coverageMapper(mapping.source); + mappedCoverage.addFunction( + fnMeta.name, + mapping.loc, + spanMapping.loc, + hits + ); + } + }); + + Object.entries(fc.branchMap).forEach(([b, branchMeta]) => { + const hits = fc.b[b]; + const locs = []; + const mappedHits = []; + let source; + let skip; + + branchMeta.locations.forEach((loc, i) => { + const mapping = this.resolveMapping(sourceMap, loc, fc.path); + if (mapping) { + if (!source) { + source = mapping.source; + } + + if (mapping.source !== source) { + skip = true; + } + + locs.push(mapping.loc); + mappedHits.push(hits[i]); + } + }); + + const locMapping = branchMeta.loc + ? this.resolveMapping(sourceMap, branchMeta.loc, fc.path) + : null; + + if (!skip && locs.length > 0) { + changes += 1; + const mappedCoverage = coverageMapper(source); + mappedCoverage.addBranch( + branchMeta.type, + locMapping ? locMapping.loc : locs[0], + locs, + mappedHits + ); + } + }); + + return changes > 0; + } + + async transform(coverageMap) { + const uniqueFiles = {}; + const getMappedCoverage = file => { + const key = getUniqueKey(file); + if (!uniqueFiles[key]) { + uniqueFiles[key] = { + file, + mappedCoverage: new MappedCoverage(file) + }; + } + + return uniqueFiles[key].mappedCoverage; + }; + + for (const file of coverageMap.files()) { + const fc = coverageMap.fileCoverageFor(file); + const sourceMap = await this.finder(file, fc); + + if (sourceMap) { + const changed = this.processFile( + fc, + sourceMap, + getMappedCoverage + ); + if (!changed) { + debug(`File [${file}] ignored, nothing could be mapped`); + } + } else { + uniqueFiles[getUniqueKey(file)] = { + file, + mappedCoverage: new MappedCoverage(fc) + }; + } + } + + return libCoverage.createCoverageMap(getOutput(uniqueFiles)); + } +} + +module.exports = { + SourceMapTransformer +}; diff --git a/node_modules/istanbul-lib-source-maps/node_modules/debug/LICENSE b/node_modules/istanbul-lib-source-maps/node_modules/debug/LICENSE new file mode 100755 index 0000000..1a9820e --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/node_modules/debug/LICENSE @@ -0,0 +1,20 @@ +(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/node_modules/istanbul-lib-source-maps/node_modules/debug/README.md b/node_modules/istanbul-lib-source-maps/node_modules/debug/README.md new file mode 100755 index 0000000..e9c3e04 --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/node_modules/debug/README.md @@ -0,0 +1,481 @@ +# 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/node_modules/istanbul-lib-source-maps/node_modules/debug/package.json b/node_modules/istanbul-lib-source-maps/node_modules/debug/package.json new file mode 100755 index 0000000..3bcdc24 --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/node_modules/debug/package.json @@ -0,0 +1,59 @@ +{ + "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/node_modules/istanbul-lib-source-maps/node_modules/debug/src/browser.js b/node_modules/istanbul-lib-source-maps/node_modules/debug/src/browser.js new file mode 100755 index 0000000..cd0fc35 --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/node_modules/debug/src/browser.js @@ -0,0 +1,269 @@ +/* eslint-env browser */ + +/** + * This is the web browser implementation of `debug()`. + */ + +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = localstorage(); +exports.destroy = (() => { + let warned = false; + + return () => { + if (!warned) { + warned = true; + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + }; +})(); + +/** + * Colors. + */ + +exports.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +// eslint-disable-next-line complexity +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { + return true; + } + + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); + + if (!this.useColors) { + return; + } + + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); + + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + +/** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ +exports.log = console.debug || console.log || (() => {}); + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ +function load() { + let r; + try { + r = exports.storage.getItem('debug'); + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } +}; diff --git a/node_modules/istanbul-lib-source-maps/node_modules/debug/src/common.js b/node_modules/istanbul-lib-source-maps/node_modules/debug/src/common.js new file mode 100755 index 0000000..e3291b2 --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/node_modules/debug/src/common.js @@ -0,0 +1,274 @@ + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ + +function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require('ms'); + createDebug.destroy = destroy; + + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); + + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = []; + createDebug.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; + + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; + + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } + + const self = debug; + + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } + + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%'; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const val = args[index]; + match = formatter.call(self, val); + + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); + + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + + return enabledCache; + }, + set: v => { + enableOverride = v; + } + }); + + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + + return debug; + } + + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + + createDebug.names = []; + createDebug.skips = []; + + let i; + const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + const len = split.length; + + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue; + } + + namespaces = split[i].replace(/\*/g, '.*?'); + + if (namespaces[0] === '-') { + createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')); + } + } + } + + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) + ].join(','); + createDebug.enable(''); + return namespaces; + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + if (name[name.length - 1] === '*') { + return true; + } + + let i; + let len; + + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + + return false; + } + + /** + * Convert regexp to namespace + * + * @param {RegExp} regxep + * @return {String} namespace + * @api private + */ + function toNamespace(regexp) { + return regexp.toString() + .substring(2, regexp.toString().length - 2) + .replace(/\.\*\?$/, '*'); + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + + createDebug.enable(createDebug.load()); + + return createDebug; +} + +module.exports = setup; diff --git a/node_modules/istanbul-lib-source-maps/node_modules/debug/src/index.js b/node_modules/istanbul-lib-source-maps/node_modules/debug/src/index.js new file mode 100755 index 0000000..bf4c57f --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/node_modules/debug/src/index.js @@ -0,0 +1,10 @@ +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ + +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + module.exports = require('./browser.js'); +} else { + module.exports = require('./node.js'); +} diff --git a/node_modules/istanbul-lib-source-maps/node_modules/debug/src/node.js b/node_modules/istanbul-lib-source-maps/node_modules/debug/src/node.js new file mode 100755 index 0000000..79bc085 --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/node_modules/debug/src/node.js @@ -0,0 +1,263 @@ +/** + * Module dependencies. + */ + +const tty = require('tty'); +const util = require('util'); + +/** + * This is the Node.js implementation of `debug()`. + */ + +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' +); + +/** + * Colors. + */ + +exports.colors = [6, 2, 3, 4, 5, 1]; + +try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = require('supports-color'); + + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } +} catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. +} + +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(key => { + return /^debug_/i.test(key); +}).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } + + obj[prop] = val; + return obj; +}, {}); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); +} + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + const {namespace: name, useColors} = this; + + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } +} + +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; +} + +/** + * Invokes `util.format()` with the specified arguments and writes to stderr. + */ + +function log(...args) { + return process.stderr.write(util.format(...args) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init(debug) { + debug.inspectOpts = {}; + + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' '); +}; + +/** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ + +formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; diff --git a/node_modules/istanbul-lib-source-maps/node_modules/ms/index.js b/node_modules/istanbul-lib-source-maps/node_modules/ms/index.js new file mode 100755 index 0000000..c4498bc --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/node_modules/ms/index.js @@ -0,0 +1,162 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} diff --git a/node_modules/istanbul-lib-source-maps/node_modules/ms/license.md b/node_modules/istanbul-lib-source-maps/node_modules/ms/license.md new file mode 100755 index 0000000..69b6125 --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/node_modules/ms/license.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Zeit, 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/node_modules/istanbul-lib-source-maps/node_modules/ms/package.json b/node_modules/istanbul-lib-source-maps/node_modules/ms/package.json new file mode 100755 index 0000000..eea666e --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/node_modules/ms/package.json @@ -0,0 +1,37 @@ +{ + "name": "ms", + "version": "2.1.2", + "description": "Tiny millisecond conversion utility", + "repository": "zeit/ms", + "main": "./index", + "files": [ + "index.js" + ], + "scripts": { + "precommit": "lint-staged", + "lint": "eslint lib/* bin/*", + "test": "mocha tests.js" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "license": "MIT", + "devDependencies": { + "eslint": "4.12.1", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1" + } +} diff --git a/node_modules/istanbul-lib-source-maps/node_modules/ms/readme.md b/node_modules/istanbul-lib-source-maps/node_modules/ms/readme.md new file mode 100755 index 0000000..9a1996b --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/node_modules/ms/readme.md @@ -0,0 +1,60 @@ +# ms + +[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms) +[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/zeit) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +ms('-3 days') // -259200000 +ms('-1h') // -3600000 +ms('-200') // -200 +``` + +### Convert from Milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(-3 * 60000) // "-3m" +ms(ms('10 hours')) // "10h" +``` + +### Time Format Written-Out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(-3 * 60000, { long: true }) // "-3 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [Node.js](https://nodejs.org) and in the browser +- If a number is supplied to `ms`, a string with a unit is returned +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) +- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned + +## Related Packages + +- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. + +## Caught a Bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git a/node_modules/istanbul-lib-source-maps/package.json b/node_modules/istanbul-lib-source-maps/package.json new file mode 100755 index 0000000..2798300 --- /dev/null +++ b/node_modules/istanbul-lib-source-maps/package.json @@ -0,0 +1,45 @@ +{ + "name": "istanbul-lib-source-maps", + "version": "4.0.1", + "description": "Source maps support for istanbul", + "author": "Krishnan Anantheswaran ", + "main": "index.js", + "files": [ + "lib", + "index.js" + ], + "scripts": { + "test": "nyc mocha" + }, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "devDependencies": { + "chai": "^4.2.0", + "mocha": "^6.2.2", + "nyc": "^15.0.0-beta.2", + "ts-node": "^8.5.4" + }, + "license": "BSD-3-Clause", + "bugs": { + "url": "https://github.com/istanbuljs/istanbuljs/issues" + }, + "homepage": "https://istanbul.js.org/", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/istanbuljs/istanbuljs.git", + "directory": "packages/istanbul-lib-source-maps" + }, + "keywords": [ + "istanbul", + "sourcemaps", + "sourcemap", + "source", + "maps" + ], + "engines": { + "node": ">=10" + } +} diff --git a/node_modules/istanbul-reports/CHANGELOG.md b/node_modules/istanbul-reports/CHANGELOG.md new file mode 100755 index 0000000..dc569cb --- /dev/null +++ b/node_modules/istanbul-reports/CHANGELOG.md @@ -0,0 +1,450 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [3.1.5](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports-v3.1.4...istanbul-reports-v3.1.5) (2022-07-13) + + +### Bug Fixes + +* `new Date()` such that it works with MockDate library ([#688](https://github.com/istanbuljs/istanbuljs/issues/688)) ([85905f9](https://github.com/istanbuljs/istanbuljs/commit/85905f989c9480e63ad534c6ff8b1a12dae278eb)) +* add placeholder to fix Implicit Else ([#679](https://github.com/istanbuljs/istanbuljs/issues/679)) ([0516f51](https://github.com/istanbuljs/istanbuljs/commit/0516f519575ee28f77ebf1e9556ac294d78904ea)) + +### [3.1.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports-v3.1.3...istanbul-reports-v3.1.4) (2022-01-17) + + +### Bug Fixes + +* "E" is not showing in the HTML reporter for "implicit else" branches after pull 633 ([#663](https://github.com/istanbuljs/istanbuljs/issues/663)) ([7818922](https://github.com/istanbuljs/istanbuljs/commit/7818922fd7229c4eee12b1407b5a13020f5d34de)) + +### [3.1.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports-v3.1.2...istanbul-reports-v3.1.3) (2021-12-29) + + +### Bug Fixes + +* reverse tabnabbing vulnerability in URLs ([#591](https://github.com/istanbuljs/istanbuljs/issues/591)) ([4eceb9e](https://github.com/istanbuljs/istanbuljs/commit/4eceb9eb8b3169b882d74ecc526fb5837ebc6205)) + +### [3.1.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports-v3.1.1...istanbul-reports-v3.1.2) (2021-12-23) + + +### Bug Fixes + +* remove stray div tag from HTML report ([68d9c74](https://github.com/istanbuljs/istanbuljs/commit/68d9c7469927ddcf15346307eacea8fd7104086c)) + +### [3.1.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports-v3.1.0...istanbul-reports-v3.1.1) (2021-12-01) + + +### Bug Fixes + +* rel="noopener" to the link in the generated html reports ([f234bb3](https://github.com/istanbuljs/istanbuljs/commit/f234bb321421e7312a83595934a1abf81c7af70c)) + +## [3.1.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports-v3.0.5...istanbul-reports-v3.1.0) (2021-11-30) + + +### Features + +* add filter to HTML report ([#650](https://github.com/istanbuljs/istanbuljs/issues/650)) ([eab47f7](https://github.com/istanbuljs/istanbuljs/commit/eab47f76be90343f679ef0e5567a21447a4995dc)) + +### [3.0.5](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-reports-v3.0.4...istanbul-reports-v3.0.5) (2021-10-13) + + +### Bug Fixes + +* cobertura reports in root folder ([#571](https://www.github.com/istanbuljs/istanbuljs/issues/571)) ([596f6ff](https://www.github.com/istanbuljs/istanbuljs/commit/596f6ff1342ae4baa6688bf3ee7786c75d4df947)) + +### [3.0.4](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-reports-v3.0.3...istanbul-reports-v3.0.4) (2021-10-12) + + +### Bug Fixes + +* handle reports with "loc" but no "decl" ([#637](https://www.github.com/istanbuljs/istanbuljs/issues/637)) ([cdc28f3](https://www.github.com/istanbuljs/istanbuljs/commit/cdc28f3a1e80e786eaab3b7d3b8b9b558fc2d3c8)), closes [#322](https://www.github.com/istanbuljs/istanbuljs/issues/322) + +### [3.0.3](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-reports-v3.0.2...istanbul-reports-v3.0.3) (2021-10-06) + + +### Bug Fixes + +* lcov reporter crash when missing branches ([#613](https://www.github.com/istanbuljs/istanbuljs/issues/613)) ([d34981c](https://www.github.com/istanbuljs/istanbuljs/commit/d34981c8131e2ecbff6fc02ffd8702fd9808e241)) + +## [3.0.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@3.0.1...istanbul-reports@3.0.2) (2020-04-01) + + +### Bug Fixes + +* Ignore insignificant lines when coalesce ([#525](https://github.com/istanbuljs/istanbuljs/issues/525)) ([d7d7cfa](https://github.com/istanbuljs/istanbuljs/commit/d7d7cfa1301f0dde2ff19078c31235ffd55c01ef)) + + + + + +## [3.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@3.0.0...istanbul-reports@3.0.1) (2020-03-26) + + +### Bug Fixes + +* cobertura should escape invalid characters ([#534](https://github.com/istanbuljs/istanbuljs/issues/534)) ([4fd5114](https://github.com/istanbuljs/istanbuljs/commit/4fd5114a0926d20e4e1e3055323c44281f0af6cd)) + + + + + +# [3.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@3.0.0-alpha.6...istanbul-reports@3.0.0) (2019-12-20) + + +### Features + +* **text:** Coalesce ranges of missing lines ([#511](https://github.com/istanbuljs/istanbuljs/issues/511)) ([54636fc](https://github.com/istanbuljs/istanbuljs/commit/54636fc9acbb53e5724fe9018837d0d205413194)) + + + + + +# [3.0.0-alpha.6](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@3.0.0-alpha.5...istanbul-reports@3.0.0-alpha.6) (2019-12-07) + + +### Bug Fixes + +* Add favicon to html report ([#493](https://github.com/istanbuljs/istanbuljs/issues/493)) ([5afe203](https://github.com/istanbuljs/istanbuljs/commit/5afe20347dd3ae954b31707a67f381f87920797f)) + + + + + +# [3.0.0-alpha.5](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@3.0.0-alpha.4...istanbul-reports@3.0.0-alpha.5) (2019-11-22) + + +### Features + +* Add support for projectRoot option ([#492](https://github.com/istanbuljs/istanbuljs/issues/492)) ([177fd45](https://github.com/istanbuljs/istanbuljs/commit/177fd45ebd7e505e79120995d937d40f965bad79)) + + + + + +# [3.0.0-alpha.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@3.0.0-alpha.3...istanbul-reports@3.0.0-alpha.4) (2019-11-18) + + +### Bug Fixes + +* Remove handlebars ([#503](https://github.com/istanbuljs/istanbuljs/issues/503)) ([aa8ae7f](https://github.com/istanbuljs/istanbuljs/commit/aa8ae7fe42ef9c8aeaa193309bafb22ad725bc3d)), closes [#476](https://github.com/istanbuljs/istanbuljs/issues/476) + + + + + +# [3.0.0-alpha.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@3.0.0-alpha.2...istanbul-reports@3.0.0-alpha.3) (2019-10-19) + + +### Bug Fixes + +* Add missing dependency on istanbul-lib-report ([#490](https://github.com/istanbuljs/istanbuljs/issues/490)) ([95a2b2f](https://github.com/istanbuljs/istanbuljs/commit/95a2b2f)), closes [istanbuljs/nyc#1204](https://github.com/istanbuljs/nyc/issues/1204) + + + + + +# [3.0.0-alpha.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@3.0.0-alpha.1...istanbul-reports@3.0.0-alpha.2) (2019-10-06) + + +### Bug Fixes + +* Use path.posix.relative to generate URL's for html reports ([#472](https://github.com/istanbuljs/istanbuljs/issues/472)) ([05dc22c](https://github.com/istanbuljs/istanbuljs/commit/05dc22c)) +* **html-spa:** Filter only exact paths ([#431](https://github.com/istanbuljs/istanbuljs/issues/431)) ([bbc85f6](https://github.com/istanbuljs/istanbuljs/commit/bbc85f6)), closes [#426](https://github.com/istanbuljs/istanbuljs/issues/426) + + + + + +# [3.0.0-alpha.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@3.0.0-alpha.0...istanbul-reports@3.0.0-alpha.1) (2019-06-20) + + +### Bug Fixes + +* Set `opts.file = '-'` on text-lcov ([#424](https://github.com/istanbuljs/istanbuljs/issues/424)) ([4be56b2](https://github.com/istanbuljs/istanbuljs/commit/4be56b2)) + + + + + +# [3.0.0-alpha.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@2.2.5...istanbul-reports@3.0.0-alpha.0) (2019-06-19) + + +### Features + +* Refactor istanbul-lib-report so report can choose summarizer ([#408](https://github.com/istanbuljs/istanbuljs/issues/408)) ([0f328fd](https://github.com/istanbuljs/istanbuljs/commit/0f328fd)) +* **text report:** Optimize output to show more missing lines ([#341](https://github.com/istanbuljs/istanbuljs/issues/341)) ([c4e8b8e](https://github.com/istanbuljs/istanbuljs/commit/c4e8b8e)) +* Modern html report ([#345](https://github.com/istanbuljs/istanbuljs/issues/345)) ([95ebaf1](https://github.com/istanbuljs/istanbuljs/commit/95ebaf1)) +* Update dependencies, require Node.js 8 ([#401](https://github.com/istanbuljs/istanbuljs/issues/401)) ([bf3a539](https://github.com/istanbuljs/istanbuljs/commit/bf3a539)) + + +### BREAKING CHANGES + +* Existing istanbul-lib-report API's have been changed +* Node.js 8 is now required + + + + + +## [2.2.5](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@2.2.4...istanbul-reports@2.2.5) (2019-05-02) + + +### Bug Fixes + +* **istanbul-reports:** Remove isRoot check causing incorrect report formatting ([#66](https://github.com/istanbuljs/istanbuljs/issues/66)). ([#382](https://github.com/istanbuljs/istanbuljs/issues/382)) ([df6e994](https://github.com/istanbuljs/istanbuljs/commit/df6e994)) + + + + + +## [2.2.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@2.2.3...istanbul-reports@2.2.4) (2019-04-24) + +**Note:** Version bump only for package istanbul-reports + + + + + +## [2.2.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@2.2.2...istanbul-reports@2.2.3) (2019-04-17) + + +### Bug Fixes + +* Initialize cols for HTML report sorting ([#369](https://github.com/istanbuljs/istanbuljs/issues/369)) ([28f61de](https://github.com/istanbuljs/istanbuljs/commit/28f61de)) + + + + + +## [2.2.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@2.2.1...istanbul-reports@2.2.2) (2019-04-09) + +**Note:** Version bump only for package istanbul-reports + + + + + +## [2.2.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@2.2.0...istanbul-reports@2.2.1) (2019-04-03) + +**Note:** Version bump only for package istanbul-reports + + + + + +# [2.2.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@2.1.1...istanbul-reports@2.2.0) (2019-03-12) + + +### Features + +* set medium colour to yellow ([#306](https://github.com/istanbuljs/istanbuljs/issues/306)) ([ed40be7](https://github.com/istanbuljs/istanbuljs/commit/ed40be7)) + + + + + +## [2.1.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@2.1.0...istanbul-reports@2.1.1) (2019-02-14) + + +### Bug Fixes + +* update dependendencies due to vulnerabilities ([#294](https://github.com/istanbuljs/istanbuljs/issues/294)) ([4c14fed](https://github.com/istanbuljs/istanbuljs/commit/4c14fed)) + + + + + +# [2.1.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@2.0.3...istanbul-reports@2.1.0) (2019-01-26) + + +### Features + +* **istanbul-reports:** Enable keyboard shortcuts on HTML report file listing view ([#265](https://github.com/istanbuljs/istanbuljs/issues/265)) ([f49b355](https://github.com/istanbuljs/istanbuljs/commit/f49b355)) + + + + + + +## [2.0.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@2.0.2...istanbul-reports@2.0.3) (2018-12-25) + + +### Bug Fixes + +* functionMap is sometimes missing a key from functions ([#253](https://github.com/istanbuljs/istanbuljs/issues/253)) ([399f215](https://github.com/istanbuljs/istanbuljs/commit/399f215)) + + + + + +## [2.0.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@2.0.1...istanbul-reports@2.0.2) (2018-12-19) + + +### Bug Fixes + +* clover report metrics must be an inline xml element ([#226](https://github.com/istanbuljs/istanbuljs/issues/226)) ([e290c95](https://github.com/istanbuljs/istanbuljs/commit/e290c95)), closes [#13](https://github.com/istanbuljs/istanbuljs/issues/13) + + + + + +## [2.0.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@2.0.0...istanbul-reports@2.0.1) (2018-09-06) + + + + +**Note:** Version bump only for package istanbul-reports + + +# [2.0.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@1.5.0...istanbul-reports@2.0.0) (2018-07-07) + + +### Chores + +* Specify node >= 6 in istanbul-reports. ([#197](https://github.com/istanbuljs/istanbuljs/issues/197)) ([5810c38](https://github.com/istanbuljs/istanbuljs/commit/5810c38)) + + +### BREAKING CHANGES + +* Requires node >= 6. + + + + + +# [1.5.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@1.4.1...istanbul-reports@1.5.0) (2018-06-06) + + +### Features + +* ability to skip rows with full coverage ([#170](https://github.com/istanbuljs/istanbuljs/issues/170)) ([bbcdc07](https://github.com/istanbuljs/istanbuljs/commit/bbcdc07)) + + + + + +## [1.4.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@1.4.0...istanbul-reports@1.4.1) (2018-05-31) + + +### Bug Fixes + +* ensure using correct context ([#168](https://github.com/istanbuljs/istanbuljs/issues/168)) ([df102fd](https://github.com/istanbuljs/istanbuljs/commit/df102fd)) + + + + + +# [1.4.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@1.3.0...istanbul-reports@1.4.0) (2018-04-17) + + +### Features + +* allow custom reporters to be loaded ([#155](https://github.com/istanbuljs/istanbuljs/issues/155)) ([6d89cca](https://github.com/istanbuljs/istanbuljs/commit/6d89cca)) + + + + + +# [1.3.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@1.2.0...istanbul-reports@1.3.0) (2018-03-09) + + +### Features + +* added named anchors to code coverage line numbers. ([#149](https://github.com/istanbuljs/istanbuljs/issues/149)) ([98e1c50](https://github.com/istanbuljs/istanbuljs/commit/98e1c50)) + + + + + +# [1.2.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@1.1.4...istanbul-reports@1.2.0) (2018-03-04) + + +### Bug Fixes + +* update fixtures to reflect new heading ([36801d3](https://github.com/istanbuljs/istanbuljs/commit/36801d3)) + + +### Features + +* add skip-empty option for html & text reports ([#140](https://github.com/istanbuljs/istanbuljs/issues/140)) ([d2a4262](https://github.com/istanbuljs/istanbuljs/commit/d2a4262)) +* add uncovered block navigation ([#136](https://github.com/istanbuljs/istanbuljs/issues/136)) ([c798930](https://github.com/istanbuljs/istanbuljs/commit/c798930)) + + + + + +## [1.1.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@1.1.3...istanbul-reports@1.1.4) (2018-02-13) + + +### Bug Fixes + +* changed column header from "Uncovered Lines" to "Uncovered Line #s" ([#138](https://github.com/istanbuljs/istanbuljs/issues/138)) ([7ba7760](https://github.com/istanbuljs/istanbuljs/commit/7ba7760)) + + + + + +## [1.1.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@1.1.2...istanbul-reports@1.1.3) (2017-10-21) + + + + +**Note:** Version bump only for package istanbul-reports + + +## [1.1.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@1.1.1...istanbul-reports@1.1.2) (2017-08-26) + + +### Bug Fixes + +* prevent branch highlighting from extending pass the end of a line ([#80](https://github.com/istanbuljs/istanbuljs/issues/80)) ([f490377](https://github.com/istanbuljs/istanbuljs/commit/f490377)) + + + + + +## [1.1.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@1.1.0...istanbul-reports@1.1.1) (2017-05-27) + + + + + +# [1.1.0](https://github.com/istanbuljs/istanbul-reports/compare/istanbul-reports@1.0.2...istanbul-reports@1.1.0) (2017-04-29) + + +### Features + +* once 100% line coverage is achieved, missing branch coverage is now shown in text report ([#45](https://github.com/istanbuljs/istanbuljs/issues/45)) ([8a809f8](https://github.com/istanbuljs/istanbul-reports/commit/8a809f8)) + + + + + +## [1.0.2](https://github.com/istanbuljs/istanbul-reports/compare/istanbul-reports@1.0.1...istanbul-reports@1.0.2) (2017-03-27) + + +### Bug Fixes + +* **windows:** preserve escape char of json-summary key path ([4d71d5e](https://github.com/istanbuljs/istanbul-reports/commit/4d71d5e)) + + +## [1.0.1](https://github.com/istanbuljs/istanbul-reports/compare/v1.0.0...v1.0.1) (2017-01-29) + + +### Bug Fixes + +* add files key to package.json ([#17](https://github.com/istanbuljs/istanbul-reports/issues/17)) ([141f801](https://github.com/istanbuljs/istanbul-reports/commit/141f801)) + + + + +# [1.0.0](https://github.com/istanbuljs/istanbul-reports/compare/v1.0.0-alpha.8...v1.0.0) (2016-10-17) + + +### Bug Fixes + +* fail gracefully if structuredText[startLine] is undefined ([#10](https://github.com/istanbuljs/istanbul-reports/issues/10)) ([bed1d13](https://github.com/istanbuljs/istanbul-reports/commit/bed1d13)) +* preserve escape char of json key path on Windows ([#12](https://github.com/istanbuljs/istanbul-reports/issues/12)) ([4e5266e](https://github.com/istanbuljs/istanbul-reports/commit/4e5266e)) +* skip branch if meta does not exist (fixes speedskater/babel-plugin-rewire[#165](https://github.com/istanbuljs/istanbul-reports/issues/165)) ([#11](https://github.com/istanbuljs/istanbul-reports/issues/11)) ([62bae2f](https://github.com/istanbuljs/istanbul-reports/commit/62bae2f)) +* Teamcity reporter modified to send proper coverage values ([#8](https://github.com/istanbuljs/istanbul-reports/issues/8)) ([4147f50](https://github.com/istanbuljs/istanbul-reports/commit/4147f50)) diff --git a/node_modules/istanbul-reports/LICENSE b/node_modules/istanbul-reports/LICENSE new file mode 100755 index 0000000..d55d291 --- /dev/null +++ b/node_modules/istanbul-reports/LICENSE @@ -0,0 +1,24 @@ +Copyright 2012-2015 Yahoo! Inc. +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 Yahoo! Inc. 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 YAHOO! INC. 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/node_modules/istanbul-reports/README.md b/node_modules/istanbul-reports/README.md new file mode 100755 index 0000000..09b6428 --- /dev/null +++ b/node_modules/istanbul-reports/README.md @@ -0,0 +1,13 @@ +# istanbul-reports + +[![Greenkeeper badge](https://badges.greenkeeper.io/istanbuljs/istanbul-reports.svg)](https://greenkeeper.io/) +[![Build Status](https://travis-ci.org/istanbuljs/istanbul-reports.svg?branch=master)](https://travis-ci.org/istanbuljs/istanbul-reports) + +- node.getRelativeName + +- context.getSource(filePath) +- context.classForPercent(type, percent) +- context.console.colorize(str, class) +- context.writer +- context.console.write +- context.console.println diff --git a/node_modules/istanbul-reports/index.js b/node_modules/istanbul-reports/index.js new file mode 100755 index 0000000..f0a7aa3 --- /dev/null +++ b/node_modules/istanbul-reports/index.js @@ -0,0 +1,24 @@ +'use strict'; +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +const path = require('path'); + +module.exports = { + create(name, cfg) { + cfg = cfg || {}; + let Cons; + try { + Cons = require(path.join(__dirname, 'lib', name)); + } catch (e) { + if (e.code !== 'MODULE_NOT_FOUND') { + throw e; + } + + Cons = require(name); + } + + return new Cons(cfg); + } +}; diff --git a/node_modules/istanbul-reports/lib/clover/index.js b/node_modules/istanbul-reports/lib/clover/index.js new file mode 100755 index 0000000..eeacb6e --- /dev/null +++ b/node_modules/istanbul-reports/lib/clover/index.js @@ -0,0 +1,164 @@ +'use strict'; +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +const { ReportBase } = require('istanbul-lib-report'); + +class CloverReport extends ReportBase { + constructor(opts) { + super(); + + this.cw = null; + this.xml = null; + this.projectRoot = opts.projectRoot || process.cwd(); + this.file = opts.file || 'clover.xml'; + } + + onStart(root, context) { + this.cw = context.writer.writeFile(this.file); + this.xml = context.getXMLWriter(this.cw); + this.writeRootStats(root, context); + } + + onEnd() { + this.xml.closeAll(); + this.cw.close(); + } + + getTreeStats(node, context) { + const state = { + packages: 0, + files: 0, + classes: 0 + }; + const visitor = { + onSummary(node, state) { + const metrics = node.getCoverageSummary(true); + if (metrics) { + state.packages += 1; + } + }, + onDetail(node, state) { + state.classes += 1; + state.files += 1; + } + }; + node.visit(context.getVisitor(visitor), state); + return state; + } + + writeRootStats(node, context) { + this.cw.println(''); + this.xml.openTag('coverage', { + generated: Date.now().toString(), + clover: '3.2.0' + }); + + this.xml.openTag('project', { + timestamp: Date.now().toString(), + name: 'All files' + }); + + const metrics = node.getCoverageSummary(); + this.xml.inlineTag('metrics', { + statements: metrics.lines.total, + coveredstatements: metrics.lines.covered, + conditionals: metrics.branches.total, + coveredconditionals: metrics.branches.covered, + methods: metrics.functions.total, + coveredmethods: metrics.functions.covered, + elements: + metrics.lines.total + + metrics.branches.total + + metrics.functions.total, + coveredelements: + metrics.lines.covered + + metrics.branches.covered + + metrics.functions.covered, + complexity: 0, + loc: metrics.lines.total, + ncloc: metrics.lines.total, // what? copied as-is from old report + ...this.getTreeStats(node, context) + }); + } + + writeMetrics(metrics) { + this.xml.inlineTag('metrics', { + statements: metrics.lines.total, + coveredstatements: metrics.lines.covered, + conditionals: metrics.branches.total, + coveredconditionals: metrics.branches.covered, + methods: metrics.functions.total, + coveredmethods: metrics.functions.covered + }); + } + + onSummary(node) { + if (node.isRoot()) { + return; + } + const metrics = node.getCoverageSummary(true); + if (!metrics) { + return; + } + + this.xml.openTag('package', { + name: asJavaPackage(node) + }); + this.writeMetrics(metrics); + } + + onSummaryEnd(node) { + if (node.isRoot()) { + return; + } + this.xml.closeTag('package'); + } + + onDetail(node) { + const fileCoverage = node.getFileCoverage(); + const metrics = node.getCoverageSummary(); + const branchByLine = fileCoverage.getBranchCoverageByLine(); + + this.xml.openTag('file', { + name: asClassName(node), + path: fileCoverage.path + }); + + this.writeMetrics(metrics); + + const lines = fileCoverage.getLineCoverage(); + Object.entries(lines).forEach(([k, count]) => { + const attrs = { + num: k, + count, + type: 'stmt' + }; + const branchDetail = branchByLine[k]; + + if (branchDetail) { + attrs.type = 'cond'; + attrs.truecount = branchDetail.covered; + attrs.falsecount = branchDetail.total - branchDetail.covered; + } + this.xml.inlineTag('line', attrs); + }); + + this.xml.closeTag('file'); + } +} + +function asJavaPackage(node) { + return node + .getRelativeName() + .replace(/\//g, '.') + .replace(/\\/g, '.') + .replace(/\.$/, ''); +} + +function asClassName(node) { + return node.getRelativeName().replace(/.*[\\/]/, ''); +} + +module.exports = CloverReport; diff --git a/node_modules/istanbul-reports/lib/cobertura/index.js b/node_modules/istanbul-reports/lib/cobertura/index.js new file mode 100755 index 0000000..e5574fa --- /dev/null +++ b/node_modules/istanbul-reports/lib/cobertura/index.js @@ -0,0 +1,151 @@ +'use strict'; +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +const path = require('path'); +const { escape } = require('html-escaper'); +const { ReportBase } = require('istanbul-lib-report'); + +class CoberturaReport extends ReportBase { + constructor(opts) { + super(); + + opts = opts || {}; + + this.cw = null; + this.xml = null; + this.timestamp = opts.timestamp || Date.now().toString(); + this.projectRoot = opts.projectRoot || process.cwd(); + this.file = opts.file || 'cobertura-coverage.xml'; + } + + onStart(root, context) { + this.cw = context.writer.writeFile(this.file); + this.xml = context.getXMLWriter(this.cw); + this.writeRootStats(root); + } + + onEnd() { + this.xml.closeAll(); + this.cw.close(); + } + + writeRootStats(node) { + const metrics = node.getCoverageSummary(); + this.cw.println(''); + this.cw.println( + '' + ); + this.xml.openTag('coverage', { + 'lines-valid': metrics.lines.total, + 'lines-covered': metrics.lines.covered, + 'line-rate': metrics.lines.pct / 100.0, + 'branches-valid': metrics.branches.total, + 'branches-covered': metrics.branches.covered, + 'branch-rate': metrics.branches.pct / 100.0, + timestamp: this.timestamp, + complexity: '0', + version: '0.1' + }); + this.xml.openTag('sources'); + this.xml.inlineTag('source', null, this.projectRoot); + this.xml.closeTag('sources'); + this.xml.openTag('packages'); + } + + onSummary(node) { + const metrics = node.getCoverageSummary(true); + if (!metrics) { + return; + } + this.xml.openTag('package', { + name: node.isRoot() ? 'main' : escape(asJavaPackage(node)), + 'line-rate': metrics.lines.pct / 100.0, + 'branch-rate': metrics.branches.pct / 100.0 + }); + this.xml.openTag('classes'); + } + + onSummaryEnd(node) { + const metrics = node.getCoverageSummary(true); + if (!metrics) { + return; + } + this.xml.closeTag('classes'); + this.xml.closeTag('package'); + } + + onDetail(node) { + const fileCoverage = node.getFileCoverage(); + const metrics = node.getCoverageSummary(); + const branchByLine = fileCoverage.getBranchCoverageByLine(); + + this.xml.openTag('class', { + name: escape(asClassName(node)), + filename: path.relative(this.projectRoot, fileCoverage.path), + 'line-rate': metrics.lines.pct / 100.0, + 'branch-rate': metrics.branches.pct / 100.0 + }); + + this.xml.openTag('methods'); + const fnMap = fileCoverage.fnMap; + Object.entries(fnMap).forEach(([k, { name, decl }]) => { + const hits = fileCoverage.f[k]; + this.xml.openTag('method', { + name: escape(name), + hits, + signature: '()V' //fake out a no-args void return + }); + this.xml.openTag('lines'); + //Add the function definition line and hits so that jenkins cobertura plugin records method hits + this.xml.inlineTag('line', { + number: decl.start.line, + hits + }); + this.xml.closeTag('lines'); + this.xml.closeTag('method'); + }); + this.xml.closeTag('methods'); + + this.xml.openTag('lines'); + const lines = fileCoverage.getLineCoverage(); + Object.entries(lines).forEach(([k, hits]) => { + const attrs = { + number: k, + hits, + branch: 'false' + }; + const branchDetail = branchByLine[k]; + + if (branchDetail) { + attrs.branch = true; + attrs['condition-coverage'] = + branchDetail.coverage + + '% (' + + branchDetail.covered + + '/' + + branchDetail.total + + ')'; + } + this.xml.inlineTag('line', attrs); + }); + + this.xml.closeTag('lines'); + this.xml.closeTag('class'); + } +} + +function asJavaPackage(node) { + return node + .getRelativeName() + .replace(/\//g, '.') + .replace(/\\/g, '.') + .replace(/\.$/, ''); +} + +function asClassName(node) { + return node.getRelativeName().replace(/.*[\\/]/, ''); +} + +module.exports = CoberturaReport; diff --git a/node_modules/istanbul-reports/lib/html-spa/.babelrc b/node_modules/istanbul-reports/lib/html-spa/.babelrc new file mode 100755 index 0000000..f995d68 --- /dev/null +++ b/node_modules/istanbul-reports/lib/html-spa/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": [["@babel/preset-env", { "modules": "commonjs" }], "@babel/preset-react"] +} diff --git a/node_modules/istanbul-reports/lib/html-spa/assets/bundle.js b/node_modules/istanbul-reports/lib/html-spa/assets/bundle.js new file mode 100755 index 0000000..24f8110 --- /dev/null +++ b/node_modules/istanbul-reports/lib/html-spa/assets/bundle.js @@ -0,0 +1,30 @@ +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var l=t[r]={i:r,l:!1,exports:{}};return e[r].call(l.exports,l,l.exports,n),l.l=!0,l.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)n.d(r,l,function(t){return e[t]}.bind(null,l));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";e.exports=n(3)},function(e,t,n){"use strict"; +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/var r=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,o,u=a(e),c=1;ce.length)&&(t=e.length);for(var n=0,r=new Array(t);nO.length&&O.push(e)}function I(e,t,n){return null==e?0:function e(t,n,r,l){var o=typeof t;"undefined"!==o&&"boolean"!==o||(t=null);var u=!1;if(null===t)u=!0;else switch(o){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case i:case a:u=!0}}if(u)return r(l,t,""===n?"."+M(t,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;c